簡體   English   中英

使用RegEx從Java字符串中刪除除-和_以外的所有標點符號

[英]Removing all punctuation except - and _ from a java string using RegEx

我正在嘗試使用在這里找到的方法來替換除-和_以外的所有標點符號,但是我只能使用所發布的確切代碼使用負前瞻來使其在“上工作:

(?!")\\p{punct}

//Java example:

String string = ".\"'";
System.out.println(string.replaceAll("(?!\")\\p{Punct}", ""));

我試過了:

name = name.replaceAll("(?!_-)\\p{Punct}", ""); // which just replaces all punctuation.

name = name.replaceAll("(?!\_-)\\p{Punct}", ""); // which gives an error.

謝謝。

使用字符類減法 (並添加+量詞以匹配1個或多個標點字符的塊):

name = name.replaceAll("[\\p{Punct}&&[^_-]]+", "");

請參閱Java演示

[\\\\p{Punct}&&[^_-]]+表示匹配\\p{Punct}類中的任何字符,除了_-

您發現的結構也可以使用,但是您需要將-_放入字符類,並使用.replaceAll("(?![_-])\\\\p{Punct}", "").replaceAll("(?:(?![_-])\\\\p{Punct})+", "")

暫無
暫無

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

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