正则表达式 - 匹配除单个数字之外的所有字母数字字符
Regular Expressions - Match all alphanumeric characters except individual numbers
我想创建一个正则表达式来仅匹配英文字母数字字符,但忽略(或丢弃)Ruby中的孤立数字(如果可能的话,在JS中也是如此)。
例子:
1) 我希望匹配以下内容:
- 4chan
- 9堵嘴
- 测试91323432
- ASF5ASDFAF35EDFDFAD
- 阿法法夫
但不是:
- 92342424
- 343424
- 34432等等..
以上正是我想要的。
编辑:我删除了第二个子问题。只关注第一个,非常感谢您的回答!!
抱歉,我的正则表达式技能不是那么好(因此这个问题!
谢谢。
你可以尝试以下表达式(在Ruby和Javascript中都有效):
^(?!^'d+$)[[:alnum:]]+$
这首先通过使用负的前瞻(?!^[0-9]+$)
来确保字符串不仅仅是数字,然后它匹配一个或多个字母数字字符,支持 Unicode 字符,这意味着这也适用于法语字母。
编辑:如果你只想要英文字母:
^(?!^'d+$)'w+$
鲁布拉演示
对于任何拉丁字母:
/(?=.*'p{Alpha})'p{Alnum}+/
确定你不能用一个正则表达式做你想做的事情。 一组数字中的任何位置的单个字母字符将使其成为有效的匹配项,并且无法在正则表达式中表示它,因为您真正说的是"这个单词的前面需要一个字母,但前提是中间或末尾没有字母", 正则表达式不会这样做。
最好的办法是执行两次传递:
- 与您的字母数字匹配,加上特殊的"法语"字符(模式:TBD,基于您要接受的特殊字符),以及
- 一个只匹配数字(模式:将包括
[0-9]+
。 。需要有关具体情况的更多信息,以便为您提供最终的完整正则表达式)
您最终想要的值需要通过第一个正则表达式并失败第二个正则表达式。
也。。。
为了给您更好的答案,我们需要了解几件事:
- 您是否正在测试整个字符串是否与模式匹配?
- 您是否正在尝试在更大的字符串中捕获模式的单个实例?
- 您是否尝试在更大的字符串中捕获模式的所有实例?
这些问题的答案对您需要的最终正则表达式模式有很大的影响。
最后。。。
关于"法语"字符的说明。 。 。您需要非常具体地说明哪些特殊字符是可接受的,哪些是不可接受的。 正则表达式中的特殊字符匹配主要有三种方法:组、加法和减法
- 组 - 这些字符表示您正在使用的正则表达式版本中的一组预设字符。 例如,
's
匹配所有空格 - 加法 - 这是列出正则表达式中每个可接受的字符(或字符范围)的过程。 当您有一小组可接受的字符时,这会更好
- 减法 - 这是列出正则表达式中每个不可接受的字符(或字符范围)的过程。 当您有一大组可接受的字符时,这会更好
如果您能澄清其中的一些问题,我们应该能够给您更好的答案。
也许这^(?![0-9]+$)[a-zA-Z0-9'x80-'xa5]+$
编辑 - 修复了剪切和粘贴错误并添加了扩展字符范围'x80-'xa5
其中包括重音字符(根据区域设置,数字可能会有所不同)
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- Javascript Regex选择每个非字母数字字符和空白
- JavaScript正则表达式(带_-的字母数字字符)
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- REGEX (javascript) - 允许字母数字字符中的特殊字符不在第一个位置
- JavaScript-Regex删除代码/特殊字符/数字等
- 在另一个由非字母数字字符分隔的字符串中搜索(任何)字符串
- JavaScript:仅按字符或按字符+数字(如果存在)拆分字符串
- 替换不包括 unicode 的非数字字符
- 字母数字字符的正则表达式和 - / 仅
- 正则表达式 - 匹配除单个数字之外的所有字母数字字符
- 用于测试字符串是否具有数字字符的条件
- 用于去除除科学记数法以外的所有非数字字符的正则表达式
- jQuery中的“#”字符(数字符号)是什么意思?
- 将数字字符引用转换为实际字符
- 仅验证数字字符的 PDF 表单字段
- 正则表达式字母数字字符 - 允许连字符和下划线
- 正则表达式检查字符串是否仅包含字母数字字符和空格 - javascript
- HTML5 输入类型=数字值在 Webkit 中为空,如果包含空格或非数字字符