[英]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.