[英]What built-in regex character classes are supported Java
...在"\\\\p{someCharacterClass}"
等模式中使用時。
我用過/見過一些:
所有受支持的內置角色的最終列表是什么? 它在哪里記錄? 具體含義是什么?
似乎有很多“RTFM”答案引用了Pattern
的javadoc。 這是我在問這個問題之前看到的第一個地方。 就這樣每個人都很清楚,Pattern的javadoc沒有提到上面列出的任何類。
“正確”的答案將在頁面的某處提及“InCombiningDiacriticalMarks”,並且不會對“Unicode標准”進行模糊的引用。
支持的類別是由Character類指定的版本中的Unicode標准類別。 類別名稱是標准中定義的類別,包括規范性和信息性。 Pattern支持的塊名稱是
UnicodeBlock.forName
接受和定義的有效塊名稱。
塊名稱由Unicode標准確定。
在http://unicode.org上有FAQ 我在哪里可以找到Unicode塊的權威列表? :
答:Unicode塊及其名稱是Unicode標准的標准部分。 確切的列表始終保存在Unicode字符數據庫
Blocks.txt
其中一個文件中。
最后,在Blocks.txt
有一行:
0300..036F; Combining Diacritical Marks
這些字符可以在組合變音符號代碼表(來自Unicode 6.0字符代碼表 )中找到。
Pattern API表示遵守http://www.unicode.org/reports/tr18/定義的正則表達式1級
有三個不錯的表(搜索UCD.html),看看UCD.html本身。
這個頁面有一些很好的細節,如:
\\p{L}
或\\p{Letter}
:來自任何語言的任何類型的信件。 \\p{M}
或\\p{Mark}
:用於與另一個角色(例如重音符號,變音符號,封閉框等)組合的角色。 \\p{N}
或\\p{Number}
:任何腳本中的任何數字字符。 該規范是http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html 。 在某些情況下,它指的是特定版本的TUS,您可以在http://unicode.org找到該材料。
查看Pattern類的javadocs。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.