正则表达式以匹配英语单词与其他一些字符

时间:2012-01-22 14:37:05

标签: regex

我使用这个正则表达式:^[a-zA-Z0-9]*$来匹配英语短语,但是,我希望这个表达式匹配英语短语可能包含部分或全部这些字符或者在他们的最后: ? > < ; , { } [ ] - _ + = ! @ # $ % ^ & * | '以及空格字符。

如何更新此正则表达式以满足此要求?

提前非常感谢你......

3 个答案:

答案 0 :(得分:7)

您只需将所有想要的字符添加到角色类中即可。

^[a-zA-Z0-9?><;,{}[\]\-_+=!@#$%\^&*|']*$

您需要使用反斜杠转义以下字符,因为它们在字符类中被视为元字符:]-^

请注意,您的正则表达式也会匹配空字符串,因为它使用*量词。如果您只想匹配至少包含一个字符的单词,请将其替换为+量词。

答案 1 :(得分:4)

您正在寻找这种模式。

^[\s\w\d\?><;,\{\}\[\]\-_\+=!@\#\$%^&\*\|\']*$

答案 2 :(得分:1)

谢天谢地接受上一个答案中的\s\w\d组,并将其他分隔符和特殊字符添加为十六进制ASCII范围(您也可以使用Unicode范围):

^[\s\w\d\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]*$

您可以在这里参考ASCII CodesUnicode characters