所有字母表的正则表达式

时间:2011-10-13 10:24:44

标签: javascript regex

我需要所有字母的正则表达式。我有一个输入和目标文本。它们都可以属于不同的字母表。我的意思是他们可以属于中文,拉丁文,西里尔文和其他任何字母。

我需要一个用于多语言输入和多语言目标文本的正则表达式。

有没有人对此有任何想法?我怎么写这个正则表达式?

我会用javascript来使用它。但我认为java和javascript应该有共同的正则表达式来解决这个问题。

3 个答案:

答案 0 :(得分:4)

如果您使用的是Java(不是javascript!),则可以使用unicode属性,例如

\P{L}来自任何语言的任何信件。

有关更多信息,请参阅regular-expressions.info/unicode

适用于Javascript:

来自XRegExp的lib和一些插件XRegExp Unicode plugins扩展了javasript正则表达式功能。这增加了对Unicode类别,脚本和块的支持。

使用这些库,您可以将\p{L}与javascript一起使用。

请参阅我对this question的回答以获取一个小例子

答案 1 :(得分:2)

某些正则表达式引擎支持所有Unicode字母的特殊字符:

\p{L}

或者您可以使用\w - 字母,数字,下划线

答案 2 :(得分:0)

我用“|”这个角色作为分隔符,所以它对我来说是特殊的。键可以是除“|”之外的任何字符。它解决了我的问题,谢谢你的答案。它可以与javascript,java和groovy一起使用。我测试了它,工作了。

var keyPrefix ="\\|[\u0000-\u007B\u007D-\uFFEF]*";
var keySuffix = "[\u0000-\u007B\u007D-\uFFEF]*\\|";
var searchkey = keyPrefix + key.toLowerCase() + keySuffix;