标点的正则表达式

因此,我对 正则表达式 完全 陌生 ,并且正在尝试使用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

回到顶部