2024-10-06 11:46:30 发布
网友
我想我要做的很简单,但我似乎无法让它发挥作用。你知道吗
我的正则表达式是:
“(?wW)什么是(\w*?\什么?\w*?)\?" 你知道吗
我希望这能让像“俄罗斯”和“哥斯达黎加”这样的国家加入抓捕组。基本上,我想读一个问题,比如“什么是阿根廷国会大厦”,然后能够抓住“阿根廷”这个词,即使这个句子里有一堆其他的东西。你知道吗
但我试了一下,然后进入了“俄罗斯的首都是什么?”上面说那根线不匹配。你知道吗
I think you are looking for this:
[wW]hat is the capitol of ([\w\s]*)\?
你的根本错误是把character classes和capture groups混为一谈。你知道吗
要查找混合字符(如w或W),需要使用[wW]这样的字符类。这意味着当我们寻找单词字符(\w=[a-zA-Z0-9_])或空格字符(\s=[\r\n\t\f ])时,我们可以简单地说[\w\s]。你知道吗
w
W
[wW]
\w
[a-zA-Z0-9_]
\s
[\r\n\t\f ]
[\w\s]
最后一个问题是?和*(repetition)的使用。首先,它们在字符类中没有特殊意义,所以我删除了它们。*重复0+个字符(+检查1+),并且?使上一个键是可选的。这意味着\w*?是不必要的,因为它表示可选的0+匹配。你知道吗
?
*
+
\w*?
注意,我在capitol名称周围使用了一个捕获组(...),这意味着我们可以从捕获组1引用capitol。你知道吗
(...)
最后,我们可以使用i修饰符使匹配不区分大小写。the final expression may be simpler to understand:
i
/what is the capitol of ([a-z ]+)\?/i
这应该匹配:
[wW]hat is the capitol of ([^?]+)\?
I think you are looking for this:
你的根本错误是把character classes和capture groups混为一谈。你知道吗
要查找混合字符(如
w
或W
),需要使用[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:这应该匹配:
相关问题 更多 >
编程相关推荐