我完全不了解正则表达式,我正在尝试使用Java的java.util.regex
来查找输入字符串中的标点符号。我事先不知道会得到什么样的标点符号,除了(1) !, ?, ., ...都是有效的标点符号,以及 (2) "<"和">"具有特殊含义,不算作标点符号。
程序本身会伪随机地构建短语,我想在该过程中将句子末尾的标点符号去掉。
我可以使用任何标点符号匹配整个单词,但是匹配程序只会给出该单词的索引。换言之:
Pattern p = Pattern.compile("(.*\\!)*?");
Matcher m = p.matcher([some input string]);
将获取任何以"!"
结尾的单词。例如:
String inputString = "It is a warm Summer day!";
Pattern p = Pattern.compile("(.*\\!)*?");
Matcher m = p.matcher(inputString);
String match = inputString.substring(m.start(), m.end());
结果是 --> 字符串匹配 ~ "day!"
但是我想让Matcher
仅索引"!"
,这样我就可以把它分开。
我可能可以针对可能获得的每种标点制作案例,并使用String.substring(...)
,但我希望在正则表达式的使用中存在某些错误来完成此操作。