所以我对正则表达式完全陌生,我正在尝试使用 Javajava.util.regex
在输入字符串中查找标点符号。我不知道我可能会提前得到什么样的标点符号,除了 (1) !, ?, ., ... 都是有效的标点符号,以及 (2) "<" 和 ">" 意味着一些特殊的东西,并且不要算作标点符号。程序本身会伪随机地构建短语,我想在它通过随机过程之前去掉句子末尾的标点符号。
我可以用任何标点符号匹配整个单词,但匹配器只给我那个单词的索引。换句话说:
Pattern p = Pattern.compile("(.*\\!)*?");
Matcher m = p.matcher([some input string]);
将抓住任何以 a"!"
结尾的单词。例如:
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(...)
我可能得到的每种标点符号,但我希望我在使用正则表达式时会出现一些错误。