如何删除Java中单个单词后面的所有标点符号?
我需要删除单词后面的标点符号。例如,如何删除Java中单个单词后面的所有标点符号?,java,string,Java,String,我需要删除单词后面的标点符号。例如,word应更改为word,string:应更改为string 编辑:算法应该只删除字符串末尾的标点符号。字符串中的任何标点符号都应保留。例如,没有应该变成不您可以使用正则表达式修改字符串 String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1"); 我不知道“结尾的“单词”在哪里,它被用作标点符号。因此,这个正则表达式将适用于您。使用接受正则表达式的方法replaceAl
word
应更改为word
,string:
应更改为string
编辑:算法应该只删除字符串末尾的标点符号。字符串中的任何标点符号都应保留。例如,
没有
应该变成不
您可以使用正则表达式修改字符串
String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1");
我不知道
“
结尾的“单词”在哪里,它被用作标点符号。因此,这个正则表达式将适用于您。使用接受正则表达式的方法replaceAll(…)
String s = "don't. do' that! ";
s = s.replaceAll("(\\w+)\\p{Punct}(\\s|$)", "$1$2");
System.out.println(s);
标点符号是否可以显示在其他有效位置?比如说,如果你有一个词:test,那么这个标记会保留还是被替换?基本上,您是删除所有标记,还是仅删除单词末尾的标记?如果字符串包含单个单词,并且其目的是删除尾随标点符号,则表达式可以简化—OP没有澄清,但是…bobbymcr我打算仅删除尾随标点符号。在这种情况下,表达式如何简化?