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或0
    s
    字符
  • (?=\b |)
    -一种正向前瞻,要求在当前位置的右侧立即出现单词边界或

?有什么要求?@WiktorStribiżew Regex应该捕获“ELL”和“ELLs”,为什么要捕获这些子字符串?为什么不只是比赛?预期的输出是什么?@WiktorStribiżew它是python程序的一部分,用于读取文件名并根据关键字分配类别<代码>厄尔
厄尔
厄尔
厄尔--
等将被分配一个类别。有时,在ELL和ELL周围有非字母数字字符,正则表达式应该考虑这些字符。@WiktorStribiżew仍在努力解决这一问题,即它不能捕获“ELL”或
\u ELL