我需要对字符串myString进行正则表达式匹配,只保留以下内容:
- 0-9
- A-Z或a-z
- 这些字符之一:'!#$%&'*+-/=?^_`{|}~.
这是我的代码行:
new Regex("[a-zA-Z0-9]").IsMatch(myString);
到目前为止,我已经使用 [a-zA-Z0-9]
,这对前两个列表项很有效。
但是,我正在苦苦挣扎(而且我的头发很漂亮,我想保留它),因为元字符使我一无所获。
如果有任何帮助,将不胜感激。 谢谢。 戴夫
我需要对字符串myString进行正则表达式匹配,只保留以下内容:
这是我的代码行:
new Regex("[a-zA-Z0-9]").IsMatch(myString);
到目前为止,我已经使用 [a-zA-Z0-9]
,这对前两个列表项很有效。
但是,我正在苦苦挣扎(而且我的头发很漂亮,我想保留它),因为元字符使我一无所获。
如果有任何帮助,将不胜感激。 谢谢。 戴夫
你好,如果你只想在字符串中保留指定的字符,那么这很简单。但是你需要匹配行首和行尾。
new Regex("^[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~.-]*$").IsMatch(myString);
"[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~.-]"
请检查减号(“-”)是否是 []
序列中的最后一个字符
只要你转义了重要的字符,方括号内的元字符就没问题。此外,破折号必须是你序列中的最后一个。
new Regex("[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~-]").IsMatch(myString);
尝试:
var re = "[a-zA-Z0-9" + Regex.Escape("'!#$%&'*+-/=?^_`{|}~.") + "]";
Regex.Escape
在字符类中不安全 - 它无法转义“-”:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.escape.aspx。它还会转义不需要转义的字符,但这没关系。 - Kobi