[英]Regular expression capturing utf-8 line separators
似乎Javascript的本機正則表達式無法捕獲帶有內插行分隔符U + 2028的字符串。 例如,當我嘗試:
"a\u2028b".match(/(.*)/)
我只能捕獲“ a”,而不能捕獲完整的字符串。
是否有這種現象的原因,或者只是Javascript無法管理某些utf-8字符? 有沒有辦法使用Javascript的本機正則表達式解決此問題?
那應該是這樣的。 為了匹配的目的.
, ^
和$
元字符U+2028
和U+2029
與\\r
回車符和\\n
(換行符)一起被分類為行分隔符。
...就是JavaScript。 每個正則表達式類型都有其自己的概念,即哪些字符是行分隔符。 例如,Java識別所有這些字符以及U+0085
(下一行或NEL)字符,而.NET僅識別\\n
。
使用此正則表達式:
"a\u2028b".match(/^[\s\S]*$/);
// matches ab
在javascript中.
與換行符不匹配,因此[\\s\\S]
也與換行符匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.