正则表达式匹配多个整个单词

时间:2011-01-14 22:20:23

标签: regex wxwidgets

如何编写正则表达式,在wxRegEx 中运行,以匹配此伪正则表达式:*good|better|best*

我知道角色级别的正则表达式匹配,即*.[ch]pp,但是如果整个单词出现怎么样呢?

感谢。

2 个答案:

答案 0 :(得分:2)

这个问题就是为什么你应该总是指定正在使用的正则表达式的 flavor 的一个很好的例子。大多数正则表达式都提供了一种匹配单词边界的方法,其中大多数都使用\b。根据{{​​3}},wxRegEx允许您选择以下三种口味中的一种:BRE,ERE或ARE。其中,只有ARE支持字边界,它使用\y,而不是\b。假设您在编译时指定wxRE_ADVANCED,此正则表达式将匹配包含单词goodbetterbest之一的任何字符串:

\y(good|better|best)\y

根据您使用的示例判断,我认为您可能会将正则表达式与全局混淆。例如,*.[ch]是您用来匹配以.c.h结尾的文件名的glob;正则表达式为\.[ch]$。在我之前链接的网站上有一个很好的正则表达式教程,但我最关心的是,正则表达式不必像glob一样描述整个字符串。这就是为什么我不必使用.*启动正则表达式,但我 必须添加$到最后,以防止匹配{{1}之类的字符串}或foo.cs

答案 1 :(得分:1)

good|better|best

我不知道“优雅”是什么意思。就我而言,这很优雅。