2011-12-01 72 views
0

我有以下的正则表达式:匹配的多个词,而不是一个单一的字

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

这是当我在字符串中通过下面它发现它:

[%RC:TEST%] 

然而下面返回false

[%RC:TEST ITEM%] 

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

+1

这有助于我怎么样? – kalabo

回答

5

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

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

当然的“正确”的解决方案需要考虑到,正是你认为可以接受的输入端,在这一点上是一种值得商榷的。

+0

非常感谢。只要我被允许接受答案,我会:) – kalabo

1

试试这个:

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

这将做到这一点,你必须得搭配一个空间。您可以使用一组(),但使用一组[]更便宜

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