簡體   English   中英

正則表達式 [^\\p{LD}\\s] 是什么意思?

[英]What's the meaning the regex [^\p{LD}\s]?

您能否解釋一下以下正則表達式的含義: [^\\\\p{LD}\\\\s] 我知道^表示否定, \\s表示空格,但我無法將它們全部收集在一起,尤其是這部分與{LD} 能否請你幫忙?

它是以下代碼的一部分:

map(x->x.replaceAll("[^\\p{LD}\\s]",""))

LD代表字母或數字,所以\\p{LD}表示任何字母或數字分類的 unicode 字符。 \\s表示任何空白字符。

你需要逃避\\\\

^否定兩者。

在java中測試:

System.out.println(".,:;-_#*'´`^° СЕНИШИН ЮРІЙ ВОДИТЕЛЬ abdsf 01152646".replaceAll("[^\\p{LD}\\s]", ""));

\\p{}是一種用於編寫 unicode 正則表達式的語法。 有關更多信息,請參閱正則表達式.info。

在該頁面上,可以閱讀:

\\p{L} 匹配類別“字母”中的單個代碼點。

因此, [^\\p{L}\\s]將匹配除空格或屬於“字母”類別的 unicode 字符以外的任何內容(例如,將不匹配以下任何內容: aà (U+00E0) 或(U+ 3042))。

演示

LD不是有效類別,將引發錯誤。

您可以在此處查看支持此語法的引擎。

編輯:

之前的正則表達式是[^\\p{LD}\\s]所以它是無效的

對於: [^\\\\p{LD}\\\\s]

匹配句子開頭: \\p{LD}\\s

在編輯的問題上如此基本,用前綴替換所有匹配項,如: \\p{LD}\\s為空

這意味着不包含在[]中的任何字符:

[^\\p{LD}\\s]
  • ^ - 不包含在[]的字符
  • \\\\ - 表示\\
  • 以及所有其他字符: p { L D } }

匹配例如: w,$,y,6, ,(,+...

暫無
暫無

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

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