簡體   English   中英

Java支持哪些內置的正則表達式字符類

[英]What built-in regex character classes are supported Java

...在"\\\\p{someCharacterClass}"等模式中使用時。
我用過/見過一些:

  • 降低
  • InCombiningDiacriticalMarks
  • ASCII

所有受支持的內置角色的最終列表是什么? 它在哪里記錄? 具體含義是什么?

編輯...

似乎有很多“RTFM”答案引用了Pattern的javadoc。 這是我在問這個問題之前看到的第一個地方。 就這樣每個人都很清楚,Pattern的javadoc沒有提到上面列出的任何類。

“正確”的答案將在頁面的某處提及“InCombiningDiacriticalMarks”,並且不會對“Unicode標准”進行模糊的引用。

Pattern文檔在“Unicode支持”部分中說明:

支持的類別是由Character類指定的版本中的Unicode標准類別。 類別名稱是標准中定義的類別,包括規范性和信息性。 Pattern支持的塊名稱是UnicodeBlock.forName接受和定義的有效塊名稱。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM