2010-06-09 90 views
1

我有正则表达式为/^[a-zA-Z ]+$/现在我需要添加对Unicode字符的支持,所以我使用\p{L}'/^[a-zA-Z ]+$\p{L}/'正则表达式 - 我怎样才能做到这一点?

这不适用于我,我不确定这是否正确使用它。我对新的正则表达式很感兴趣,并希望得到任何指导。

谢谢。

+1

»基于PCRE的PHP preg函数在/ u选项附加到正则表达式时支持Unicode。« - [正则表达式教程 - Unicode字符和属性](http://www.regular-expressions .info/unicode.html) – Joey 2010-06-09 21:53:39

回答

2

这是否帮助?

/^[\p{L} ]+$/u 

这将匹配由空格和来自任何语言的任何种类的字母组成的任何字符串。正如约翰内斯指出的那样,u标志使其与UTF-8相匹配。

另外,我发现this site对正则表达式有很大的帮助。我提供了有关正则表达式和unicode字符的链接。

+0

你错过了'u'选项。 – Joey 2010-06-09 21:55:55

+0

谢谢 - 这是什么使它与UTF-8匹配的权利? – 2010-06-09 22:04:33

1

你说你的字符串必须开始,然后有很多字母/空格,然后结束,然后有一个unicode字母。

我不熟悉您的特定的正则表达式库的语法,但我怀疑你想

/^[\p{L} ]+$/ 
+0

Unicode可以在任何地方,所以不能说它只在一个地方 – Rachel 2010-06-09 21:52:26

+0

我的意思是,你发布的你试过的例子是荒谬的,因为你说你想匹配unicode字母在字符串的末尾(在正则表达式中用$表示)。 我给你的正则表达式应该匹配unicode字母和空格(一个或多个)的任何序列。 – dty 2010-06-09 21:54:49

相关问题