Regex 要排除字母数字字符的正则表达式
我认为Regex 要排除字母数字字符的正则表达式,regex,Regex,我认为[^0-9a-zA-Z]*排除了所有字母数字字母,但允许使用特殊字符、空格等 使用搜索字符串[^0-9a-zA-Z]*ELL[^0-9a-Z]*我希望得到如下输出 ELL ELLs The ELL Which ELLs 然而,我也得到了以下输出 Ellis Island Bellis 如何更正此问题?将*更改为+ a*指任何金额,包括零。A+表示一个或多个。不过,您可能需要一个词boundry: \bELL\b 单词边界是介于\w和\w(非单词字符)之间的位置,或者在字符串的开
[^0-9a-zA-Z]*
排除了所有字母数字字母,但允许使用特殊字符、空格等
使用搜索字符串[^0-9a-zA-Z]*ELL[^0-9a-Z]*
我希望得到如下输出
ELL
ELLs
The ELL
Which ELLs
然而,我也得到了以下输出
Ellis Island
Bellis
如何更正此问题?将*更改为+
a*指任何金额,包括零。A+表示一个或多个。不过,您可能需要一个词boundry:
\bELL\b
单词边界是介于\w和\w(非单词字符)之间的位置,或者在字符串的开头或结尾(如果它分别以一个字字符([0-9A-Za-z\u])结束。更多关于这方面的信息:
您可以使用
(?:\b|_)ELLs?(?=\b|_)
看
如果它被\ucode>或非单词字符包围,或者在字符串的开始/结束处,它将找到ELL
或ELLs
详细信息:
(?:\b |)
-与单词边界位置(\b
)或(|
)a匹配的非捕获交替组
ELLs?
-匹配ELLs
或ELLs
,因为s?
匹配1或0s
字符
(?=\b |)
-一种正向前瞻,要求在当前位置的右侧立即出现单词边界或
?有什么要求?@WiktorStribiżew Regex应该捕获“ELL”和“ELLs”,为什么要捕获这些子字符串?为什么不只是比赛?预期的输出是什么?@WiktorStribiżew它是python程序的一部分,用于读取文件名并根据关键字分配类别<代码>厄尔
,厄尔
,厄尔
,厄尔--
等将被分配一个类别。有时,在ELL和ELL周围有非字母数字字符,正则表达式应该考虑这些字符。@WiktorStribiżew仍在努力解决这一问题,即它不能捕获“ELL”或\u ELL