2012-10-24 215 views
0

我需要一个正则表达式允许的特殊字符((_- $ @列表:?!“/)和字母支持UTF-8种语言正则表达式允许特定的特殊字符

我试图

。 。
/^[\_\-\.\[email protected]\?\,\:\'\/\!]*$/ 

但输入的英语和泰米尔语字母显示无效

+1

来自常见问题解答:***请附上一个标签,说明您正在使用的编程语言或工具,以及此标签(正则表达式)。 Unicode支持在不同的正则表达式引擎中是非常不同的,所以真的需要这种语言。 – stema

回答

0

你需要躲避连字符为它是有效的,您也不必逃避大多数其他字符 - 括号内,几乎所有的东西是字面意思。

/[_\[email protected]?,:'/!]*/ 
+0

谢谢。但仍然开始输入'a'显示无效。 – vignesh

+0

我误解了你的问题;您可能希望使用黑名单而不是白名单。是否有特定的特殊字符要禁止?在这种情况下,请使用形式为[[^ ...]'的否定字符类,并指定插入后*不希望允许的特殊字符。 – Fraxtil

+0

它确定。但是,使用黑名单时可能会遗漏一些字符,所以我只想告诉有效的字符。 – vignesh

0

我不知道你的正则表达式引擎是否支持\p{L}。你可以试试这个:

^[_\-.\[email protected]\?\,\:\'/!\p{L}]*$ 

或者这一个:

^[_\-.\[email protected]\?\,\:\'/!\w]*$ 

最后一个也匹配数字。

+0

谢谢。它的工作英语和特殊字符,但不支持其他语言,如泰米尔.. – vignesh

+0

@vignesh,嗯......这两个正则表达式应该匹配Unicode字母。 –

+0

@vignesh,为了测试目的,试试这个'\ w'正则表达式。它与泰米尔语字母匹配吗?看来你的正则表达式引擎有不正确的实现。 –