Java正则表达式unicode支持?

时间:2014-04-03 19:17:23

标签: java regex unicode

我正在开发一款应用程序,通过电子邮件收到客户关于特定产品的反馈。目前我正在使用java匹配器和模式类来使用正则表达式来解析某些片段和关键字。

GIVEN:客户通过世界各地的任何电子邮件客户端(APAC除外)向我们发送电子邮件。

问:我是否需要在\\p{L}和/或\\p{M}前加上我的所有正则表达式,或者我可以使用左 \\Q<my regex>\\E(用\\Q\\E包裹我的正则表达式?

1 个答案:

答案 0 :(得分:1)

你可以尝试:

Pattern.quote(yourString);

相当于\Q \E

\Q ... \E用于文字匹配,这意味着您需要提前知道要匹配的字符串。例如,使用\Qпривет мир\E匹配:

привет мир

虽然使用\Q.*\E不匹配 - 但它会匹配:

.*

因此,如果您希望匹配привет мирmerhaba dünya(两者)之类的字符串,您可能希望使用\p{M}*\p{L}+之类的字符串来捕获每个字词({ {1}},привет等)或者мир可以捕获整个字符串\X+