什么是国会大厦?正则表达式

2024-10-06 11:46:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我要做的很简单,但我似乎无法让它发挥作用。你知道吗

我的正则表达式是:

“(?wW)什么是(\w*?\什么?\w*?)\?" 你知道吗

我希望这能让像“俄罗斯”和“哥斯达黎加”这样的国家加入抓捕组。基本上,我想读一个问题,比如“什么是阿根廷国会大厦”,然后能够抓住“阿根廷”这个词,即使这个句子里有一堆其他的东西。你知道吗

但我试了一下,然后进入了“俄罗斯的首都是什么?”上面说那根线不匹配。你知道吗


Tags: 国家句子ww国会发挥作用大厦
2条回答

I think you are looking for this

[wW]hat is the capitol of ([\w\s]*)\?

你的根本错误是把character classescapture groups混为一谈。你知道吗

要查找混合字符(如wW),需要使用[wW]这样的字符类。这意味着当我们寻找单词字符(\w=[a-zA-Z0-9_])或空格字符(\s=[\r\n\t\f ])时,我们可以简单地说[\w\s]。你知道吗

最后一个问题是?*repetition)的使用。首先,它们在字符类中没有特殊意义,所以我删除了它们。*重复0+个字符(+检查1+),并且?使上一个键是可选的。这意味着\w*?是不必要的,因为它表示可选的0+匹配。你知道吗

注意,我在capitol名称周围使用了一个捕获组(...),这意味着我们可以从捕获组1引用capitol。你知道吗

最后,我们可以使用i修饰符使匹配不区分大小写。the final expression may be simpler to understand

/what is the capitol of ([a-z ]+)\?/i

这应该匹配:

[wW]hat is the capitol of ([^?]+)\?

相关问题 更多 >