簡體   English   中英

用於匹配 Unicode 模式的正則表達式

[英]Regex for matching Unicode pattern

我正在嘗試在上傳文件時驗證文件的內容,但我堅持使用 Unicode 編碼。 我對找到不在 ASCII 范圍內的 Unicode 特殊字符不感興趣。 我試圖找出文件的內容是否至少包含一種 Unicode 模式,例如 \F。

例如,我排除了任何包含“script”字樣的文件,但如果該文件包含用 Unicode 編寫的這個字詞怎么辦? 當然,Java 在讀取內容時會將其解碼為普通字符串,但是如果我不能依賴它呢?

所以,據我在互聯網上搜索,我看到過像\F 這樣寫的Unicode 字符,或者像U+0046 這樣寫的Unicode 字符。 基於此,我編寫了以下正則表達式:

(\\u|U\+)....

這意味着 \\u 或 U+ 后跟四個字符。 這種模式實現了我的願望,但我想知道是否還有其他方法可以編寫 Unicode 字符。 它總是 \\u 或 U+? \\u 或 U+ 之后可以多於或少於 4 個字符嗎?

謝謝

屬於 Unicode 的符號 U+任意數量的十六進制數字在代碼中的任何地方都不起作用。 在 java 源代碼和 *.properties \\u\u003c/code>后跟四個十六進制數字是 Unicode 的 UTF-16 編碼,自動解析。

要搜索的模式:

"\\\\u[0-9A-Fa-f]{4}"

或者一個 String.contains :

"\\u"

對於完整的 UTF-32 范圍,在 Java \\Uxxxxxx其他語言中\\Uxxxxxx (六個十六進制字符)是可能的。 不幸的是,Java 8 並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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