英语,当然,对于正则表达式来说是明智之举,因为它最初是为/开发的:
正则表达式能理解这个字符集吗?
法语进入了一些重音字符,我不确定如何匹配 - 即è和e都被正则表达式视为单词字符?
Lesexpressionsrégulièrespeuventcomprendre ce jeudecaractères?
日语不包含我所知道的正则表达式字符以匹配。
正规表现は,この文字を理解でき,设定?
答案 0 :(得分:7)
简短回答:是。
更具体地说,它取决于你的正则表达式引擎支持unicode匹配(如here所述)。
这样的匹配会极大地使你的正则表达式复杂化,所以我可以推荐阅读this unicode正则表达式教程(同时注意unicode实现本身可能非常混乱,所以你也可以从阅读Joel Spolsky的{{3}关于字符集的内部工作原理)。
答案 1 :(得分:1)
据我所知,没有任何特定的模式可以使用,即[a-zA-Z]匹配“è”,但你总是可以单独匹配它们,即[a-zA-Zè正]
显然,这可以让你的regexp变得非常庞大,但是你总是可以通过将你的字符串添加到变量中来控制它,并且只将变量传递给表达式。
答案 2 :(得分:1)
一般来说,正则表达式更适用于移植机器可读文本而非人类可读文本。在许多方面,它是一个更普遍的答案,整个XML与正则表达式的东西;正则表达式本质上无法正确解析人类语言,因为语言比用于解析它的语言更复杂。
如果你想分解人类语言(包括英语),你会想要使用语言分析工具甚至AI,而不仅仅是正则表达式。
答案 3 :(得分:0)
它不是关于正则表达式,而是关于执行它的框架。 java和.net我认为非常善于处理unicode。因此“è和e都被正则表达式视为单词字符”是真的。
答案 4 :(得分:0)
这取决于实现和字符集。一般来说,答案是“是”,但可能需要您进行额外的设置。
例如,在Perl中,所选区域设置(使用区域设置)会改变\ w之类的含义。
答案 5 :(得分:0)
这SO thread可能有所帮助。它包括您可以在正则表达式中使用的Unicode character classes(例如,[Ll]全是小写字母,无论语言如何)。
答案 6 :(得分:0)
/[\p{Latin}]/
应包括拉丁字母。您可以获得完整的解释并参考here。
答案 7 :(得分:0)
“ [\ p {L}]” 此正则表达式包含所有语言(大写和小写)中的所有字母字符。 因此可以接受诸如(a-z A-Zäßè正の文字を理解)之类的字母,但不接受(,。?> :)或其他类似符号之类的符号。