簡體   English   中英

正則表達式刪除除句點以外的所有特殊字符

[英]Regex to remove all special characters except periods

我需要幫助創建一個刪除所有特殊字符(包括逗號,但不包括句點)的正則表達式。 我試圖做的是轉義所有我不想要的字符、符號和標點符號。 它沒有按預期工作。

replace("[-\\[\\]^/,'*:.!><~@#\$%+=?|\"\\\\()]+".toRegex(), "")

我刪除了期間並對其進行了測試。 這沒用。

replace("[-\\[\\]^/,'*:!><~@#\$%+=?|\"\\\\()]+".toRegex(), "")

例如,讓我們使用字符串“if {cat.is} in a hat, then I eat green egg and ham!”。

我想要結果

if {cat.is} in a hat then I eat green eggs and ham (去掉逗號和感嘆號)

注意:我想保留括號,盡管可以省略括號。

任何人都有解決方案?

您可以使用

"""[\p{P}\p{S}&&[^.]]+""".toRegex()

[\\p{P}\\p{S}&&[^.]]+模式匹配一​​個或多個 ( + ) 標點符號 ( \\p{P} ) 或符號 ( \\p{S} ) 字符而不是點 ( &&[^.] ,使用字符類減法)。

查看Kotlin 演示

println("a-b)h.".replace("""[\p{P}\p{S}&&[^.]]+""".toRegex(), ""))
// => abh.

暫無
暫無

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

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