标点的正则表达式
因此,我对 正则表达式 完全 陌生 ,并且正在尝试使用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(...)
每种标点符号,但是我希望使用正则表达式时会出现一些错误。
回答:
我会尝试类似的字符类正则表达式
"[.!?\\-]"
在[]
s中添加您希望匹配的任何字符。请小心转义对正则表达式解析器可能具有特殊含义的所有字符。
然后,您必须使用遍历匹配项,Matcher.find()
直到返回false。
以上是 标点的正则表达式 的全部内容, 来源链接: utcz.com/qa/426948.html