我試圖讓正則表達式的工作,將允許所有字母數字字符(包括大小寫和非大寫字母以及數字),但也允許空格,正斜槓(/),破折號( - )和加號(+)?正則表達式匹配所有字母數字和某些特殊字符?
我一直在玩refiddle:http://refiddle.com/gqr但到目前爲止沒有成功,任何人的任何想法?
我不確定它是否有任何區別,但我正在嘗試在c#中執行此操作?
我試圖讓正則表達式的工作,將允許所有字母數字字符(包括大小寫和非大寫字母以及數字),但也允許空格,正斜槓(/),破折號( - )和加號(+)?正則表達式匹配所有字母數字和某些特殊字符?
我一直在玩refiddle:http://refiddle.com/gqr但到目前爲止沒有成功,任何人的任何想法?
我不確定它是否有任何區別,但我正在嘗試在c#中執行此操作?
如果你想允許只有那些,你還需要使用錨點^
和$
。
^[a-zA-Z0-9_\s\+\-\/]+$
^ ^^
這是你的正則表達式,我添加了字符,如第二行所示。不要忘記+
或*
接近結束允許超過1個字符(*
的情況下爲0或更多),否則正則表達式將嘗試僅匹配一個字符,即使使用.Matches
也是如此。
您還可以通過一個\w
代替全班[A-Za-z0-9_]
,像這樣:
^[\w\s\+\-\/]+$
編輯:
實際上,你可以避開一些逃逸,並避免最後一個精心佈置逃逸(即確保-
可以是開頭或結尾):
^[\w\s+/-]+$
你的正則表達式將類似於:
/[\w\d\/\-\+ ]+/g
這就是所有的字母,數字和/ - +和空格(而不是任何其他空格字符)
的+在結束意味着在至少需要1個字符。如果您想允許空字符串,請將其更改爲*。
此代碼是:
var input = "Test if/this+-works&sec0nd 2 part*3rd part";
var matches = Regex.Matches(input, @"([0-9a-zA-Z /+-]+)");
foreach (Match m in matches) if (m.Success) Console.WriteLine(m.Value);
和輸出將有3個結果行:
感謝您的解釋,我設法讓它工作用你的例子,非常感謝!我得到了大量的單個字符,你的解釋不僅解決了我的問題,而且幫助我瞭解了爲什麼它不能在第一個地方工作:-) – Apqu