【问题标题】:Latin letter regular expression in JavaJava中的拉丁字母正则表达式
【发布时间】:2015-02-26 18:12:51
【问题描述】:

我需要一个 Java 中的正则表达式来匹配拉丁字母和一些特殊字符。

我不想列出字符。

例子:

应匹配以下大小写:äöüçłąćżźńóę

不应匹配:£

我尝试了几种模式和组,但几个小时后我没有想法

我们将不胜感激。

【问题讨论】:

    标签: java regex unicode latin


    【解决方案1】:

    \p{IsLatin} 字符类将执行此操作。

    System.out.println(someString.matches("\\p{IsLatin}+"));

    它在Pattern class documentation 中命名。

    用快速循环迭代所有可能的字符表明它匹配的完整字符集是:

    ABCDEFGHIJKLMNOPQRSTU VWXYZ abcdefghijklmnopqrstu vwxyz ª º À Á Â Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù À æ Û ü Ý Þ ß à Ê ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ě Ĝ ę Ě ē捷克ŏ Ő ő Œ œ Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş š Ţ ţ Ť ť Ŧ ŧ Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű ų ų Ŵ ŵ ſŻ Ÿ Ÿ Ž Ź Ÿ   � ȗȗşţţţţȝȝȟȟƞȡȣȥȥȧȧȧȩȩȫȭȭȯȯȯȯȱȳȴȵȶȶȷȷȸȸȹȼƚⱦȿȿȿɀɀɀⱦȿɀɀȿⱦɇɇ � ɻ ɼ ɽ ɾ � � � � � � � � � � ₕₕₖₗₘₙₚₛₜₜⅎⅰⅶⅷⅷⅸⅺⅼⅽⅾⅿⅰⅷⅷⅳⅴⅵⅶⅷⅸⅺⅻⅼⅽⅽⅾⅾⅿⅻⅼⅽⅽⅾⅾⅻⅻⅼⅽⅾⅾⅼⅼⅽⅽⅽⅽⅽⅽⅽⅽⅽⅽⅽⅽⅽⅽⅽⅼⅽⅽ � � � ꞥ Ꞧ ꞧ Ꞩ ꞩ Ɦ ꟸ ꟹ ꟺ ꟻ ꟼ ꟽ ꟾ ꟿ ff fi ffi ffl ſt st A B C D E F G H I J K Y M \ O LP Q R S T aUV W d e f g hij k lmnopq r st ü vw x yz

    如果太多,您可以将其与一些 named Unicode blocks 相交。

    比如这个字符类:

    [\p{IsLatin}&&[\p{InBasic_Latin}\p{InLatin_1_Supplement}\p{InLatin_Extended_A}\p{InLatin_Extended_B}]]
    

    将匹配:

    ABCDEFGHIJKLMNOPQRSTU VWXYZ abcdefghijklmnopqrstu vwxyz ª º À Á Â Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù À æ Û ü Ý Þ ß à Ê ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ě Ĝ ę Ě ē捷克ŏ Ő ő Œ œ Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş š Ţ ţ Ť ť Ŧ ŧ Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű ų ų Ŵ ŵ ſŻ Ÿ Ÿ Ž Ź Ÿ   � ȗȗşţţţţȝȝȟȟƞȡȣȥȥȧȧȧȩȩȫȭȭȯȯȯȯȱȳȴȵȶȶȷȷȸȸȹȼƚⱦȿȿȿɀɀɀⱦȿɀɀȿⱦɇɇ ɉ Ɋ ɋ Ɍ ɍ Ɏ ɏ

    【讨论】:

      【解决方案2】:

      使用以下模式(\p{L} 匹配任何 unicode 字符):

      [\p{L}]+
      

      【讨论】:

      • 这也将匹配希腊语、西里尔字母和其他字母。
      猜你喜欢
      • 2018-09-15
      • 1970-01-01
      • 2018-06-21
      • 2018-10-13
      • 2021-01-07
      • 2017-04-04
      • 2012-07-27
      • 2017-12-01
      • 2021-04-13
      相关资源
      最近更新 更多