我试图在给定的文本中找到'a','an','the'.并且表达式r'[a |(an)|(the)] +'仅识别'a'而不识别'an'和'the'.
nltk.re_show(r'[a|(an)|(the)]+', 'sdfkisdfjstdskfhdsklfjkhe an skfjkla')
这给了我输出
sdfkisdfjs{t}dskf{h}dsklfjk{h}{e} {a}{n} skfjkl{a}
我也试过了
nltk.re_show(r'[a|<an>|<the>]+', 'sdfkisdfjstdskfhdsklfjkhe an skfjkla')
我得到一个输出
sdfkisdfjs{t}dskf{h}dsklfjk{he} {an} skfjkl{a}
我不明白为什么'h'和'他'被认可.
在这种情况下,正确的正则表达式可以识别给定文本中的"a","an"和"the"?
方形和圆形支架的含义不同.方括号用于指定"内部任何一个字符".
另请注意,如果要匹配"an",则不希望捕获停止在"a",这意味着您必须反转顺序.
你想要什么而不是
[a|(an)|(the)]+
似乎是
(an|a|the)+
或者只是
(an|a|the)
或(不太可读)
(an?|the)
(是的,一个问题通常有很多正则表达式)
| 归档时间: | 
 | 
| 查看次数: | 85 次 | 
| 最近记录: |