2011-06-09 44 views
0

我想使用正则表达式正则表达式和野生人物

%[ _]play[ ,_]%

其中%是指允许一些任意字符串出现。例如,我想检查这个正则表达式出现在某些字符串中的某处。这有效吗?

回答

1

不,它是无效的。最简单的方法是简单地删除百分号,因为字符串不需要专门匹配指定的正则表达式。

此正则表达式:

[ _]play[ ,_] 

将匹配字符串:

ABC play,DEF 
1

实际上你自己做到了。只需要与.*

.*[ _]play[ ,_].* 

[编辑]

更换%丹尼尔·Hilgarth提到无厘头使用.*,如果这只是匹配。

尽管如此,如果你需要捕获的开始和结束分别然后你可以使用表情是这样的:

(.*)[ _]play[ ,_](.*) 

这将捕获的开始和结束的数目组。

+0

这是完全没有必要的,并具有性能影响,用'。*'预处理和后处理。 – 2011-06-09 06:59:18

+0

@Daniel Hilgarth - 这取决于你想要捕捉什么,以及是否要捕捉。如果这只是匹配,我绝对同意'。*'不是必需的。但是如果我们想捕捉前后的内容,我们需要指定'。*'。 – 2011-06-09 07:02:32

+0

我不明白。为什么你需要这个捕获?如果字符串与不带'。*'的正则表达式匹配,则可以取整个字符串,因为这是用'。*'完全捕获正则表达式。我仍然看不到使用'。*'的好处。 – 2011-06-09 07:07:06