匹配多个单词而不是单个单词

时间:2011-12-01 13:42:19

标签: c# regex

我有以下正则表达式:

private string tokenRegEx = @"\[%RC:(\w+)%\].*?";

当我传入下面的字符串时,它找到它:

[%RC:TEST%]

但是以下内容返回false

[%RC:TEST ITEM%]

如何修改正则表达式以允许空格和整个单词?

3 个答案:

答案 0 :(得分:5)

您需要将\w模式(仅与alphanum和下划线匹配)更改为更自由的模式。例如,这也允许空格:

private string tokenRegEx = @"\[%RC:((\w|\s)+)%\].*?"; 

当然,“正确”的解决方案需要准确考虑您认为可接受的输入,此时此类讨论是开放的。

答案 1 :(得分:1)

试试这个:

@"\[%RC:(\w|\s)+%\].*?";

答案 2 :(得分:1)

这样做,你必须匹配一个空间。您使用群组()但使用集合[]则更便宜

private string tokenRegEx = @"\[%RC:([ \w]+)%\].*?";