对于行输入"Abcd abcd1a 5ever qw3-fne superb5 1234 0">
我正在尝试匹配带有字母和数字的单词,例如"abcd","abcd1a","5ever","superb5","qw3","fne"。但它不应该匹配只有数字的单词,如"1234"、"0"。
单词由除上述字母数字以外的所有字符分隔。
我试过这个正则表达式(?![0-9])([A-Za-z0-9]+( 与单词"5ever"不匹配,但适用于其他所有内容。
我如何编写此正则表达式,使其也完全匹配单词"5ever"?
选项 1 - 负面展望
在此处查看正在使用的正则表达式
b(?!d+b)[^W_]+
b(?!d+b)[A-Za-zd]+
b(?!d+b)[a-zd]+ # With case-insensitive flag enabled
-
b
断言位置作为单词边界 -
(?!d+b)
负前瞻,确保整个单词不仅仅由数字组成 -
[^W_]+
或[A-Za-zd]+
仅匹配字母或数字一次或多次
选项 2 - 无前瞻
此处使用的另一种替代方法(启用不区分大小写i
标志(:
bd*[a-z][a-zd]* # With case-insensitive flag enabled
bd*[A-Za-z][A-Za-zd]*
-
b
断言位置作为单词边界 -
d*
匹配任意数字任意次数 -
[a-z]
匹配任何字母(启用i
标志,这也匹配A-Z
( -
[a-zd]*
匹配任意字母或数字任意次数
匹配字符串Abcd abcd1a 5ever qw3-fne superb5 1234 0
中的以下内容:
Abcd
abcd1a
5ever
qw3
fne
superb5
我想出了以下正则表达式:
/d*[a-z_]+w*/ig
-
d*
以可能的数字开头 -
[a-z_]+
包含数量 1 和多个的字母或下划线 -
w*
可能后跟任何字符 -
ig
案例 i敏感和 g叶标志
带有详细说明的演示