如何编写正则表达式,在wxRegEx 中运行,以匹配此伪正则表达式:*good|better|best*
?
我知道角色级别的正则表达式匹配,即*.[ch]pp
,但是如果整个单词出现怎么样呢?
感谢。
答案 0 :(得分:2)
这个问题就是为什么你应该总是指定正在使用的正则表达式的 flavor 的一个很好的例子。大多数正则表达式都提供了一种匹配单词边界的方法,其中大多数都使用\b
。根据{{3}},wxRegEx允许您选择以下三种口味中的一种:BRE,ERE或ARE。其中,只有ARE支持字边界,它使用\y
,而不是\b
。假设您在编译时指定wxRE_ADVANCED
,此正则表达式将匹配包含单词good
,better
或best
之一的任何字符串:
\y(good|better|best)\y
根据您使用的示例判断,我认为您可能会将正则表达式与全局混淆。例如,*.[ch]
是您用来匹配以.c
或.h
结尾的文件名的glob;正则表达式为\.[ch]$
。在我之前链接的网站上有一个很好的正则表达式教程,但我最关心的是,正则表达式不必像glob一样描述整个字符串。这就是为什么我不必使用.*
启动正则表达式,但我 必须添加$
到最后,以防止匹配{{1}之类的字符串}或foo.cs
。
答案 1 :(得分:1)
good|better|best
我不知道“优雅”是什么意思。就我而言,这很优雅。