我有以下的正则表达式:匹配的多个词,而不是一个单一的字
private string tokenRegEx = @"\[%RC:(\w+)%\].*?";
这是当我在字符串中通过下面它发现它:
[%RC:TEST%]
然而下面返回false
[%RC:TEST ITEM%]
我该如何修改正则表达式以允许空格以及整个单词?
我有以下的正则表达式:匹配的多个词,而不是一个单一的字
private string tokenRegEx = @"\[%RC:(\w+)%\].*?";
这是当我在字符串中通过下面它发现它:
[%RC:TEST%]
然而下面返回false
[%RC:TEST ITEM%]
我该如何修改正则表达式以允许空格以及整个单词?
您需要将\w
模式(仅与alphanum和下划线相匹配)更改为更自由的模式。例如,这也将使空白:
private string tokenRegEx = @"\[%RC:((\w|\s)+)%\].*?";
当然的“正确”的解决方案需要考虑到,正是你认为可以接受的输入端,在这一点上是一种值得商榷的。
非常感谢。只要我被允许接受答案,我会:) – kalabo
试试这个:
@"\[%RC:(\w|\s)+%\].*?";
这将做到这一点,你必须得搭配一个空间。您可以使用一组()
,但使用一组[]
更便宜
private string tokenRegEx = @"\[%RC:([ \w]+)%\].*?";
这有助于我怎么样? – kalabo