我有以下的正則表達式:匹配的多個詞,而不是一個單一的字
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