bud*_*udi 12 java regex string
示例:
// A B C. -> A B C
// !A B C! -> !A B C
// A? B?? C??? -> A? B?? C
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的:
while (endsWithRegex(word, "\\p{P}")) {
word = word.substring(0, word.length() - 1);
}
Run Code Online (Sandbox Code Playgroud)
public static boolean endsWithRegex(String word, String regex) {
return word != null && !word.isEmpty() &&
word.substring(word.length() - 1).replaceAll(regex, "").isEmpty();
}
Run Code Online (Sandbox Code Playgroud)
这个当前的解决方案有效,但由于它已经String.replaceAll
在内部调用endsWithRegex
,我们应该能够做到这样的事情:
word = word.replaceAll(/* regex */, "");
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我建议使用
\s*\p{Punct}+\s*$
Run Code Online (Sandbox Code Playgroud)
它将匹配字符串末尾的可选空格和标点符号.
如果您不关心空白,请使用\p{Punct}+$
.
不要忘记在Java字符串中,反斜杠应该加倍以表示文字反斜杠(必须用作正则表达式转义符号).
String word = "!Words word! ";
word = word.replaceAll("\\s*\\p{Punct}+\\s*$", "");
System.out.println(word); // => !Words word
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5556 次 |
最近记录: |