因此,我对 正则表达式 完全 陌生 ,并且正在尝试使用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。
问题内容: 首先,我阅读以下文档 http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html 而且我想找到除@’之外的任何标点符号,但我不太了解。 这是 : 结果是没有匹配。 是否有任何不匹配? 谢谢 MRizq 问题答案: 您要匹配两个字符,而不是一个。使用(负)前瞻应解决以下任务:
问题内容: 我有一个任务要匹配浮点数。我为此编写了以下正则表达式: 但是,它返回一个错误: 据我所知,我们还需要使用转义字符.。请纠正我哪里我错了。 问题答案: TL; DR 使用[.]代替.和[0-9]代替\d以避免在某些语言(例如Java)中转义问题。 感谢无名的人最初认识到这一点。 匹配浮点数的一种相对简单的模式是 这将匹配: 查看工作示例 如果您还想匹配123.(无小数点的句点),则需要稍
我有一根绳子,看起来像这样:
我们面临的问题可以用正则表达式解决:https://github.com/php-mime-mail-parser/php-mime-mail-parser/issues/176有些电子邮件地址不符合RFC822标准。特殊字符有问题(例如
问题内容: 我需要找到与特定正则表达式匹配的所有软件包: 基本上,包的名字应该与启动,并有后话。例如,以下软件包应匹配: 我可以做,但是有很多我不感兴趣的软件包。 是否提供通过正则表达式查找软件包的方法?或者,我应该只是通过管道传递结果来过滤掉无关的包? 此外,可能是一个的“交集” ,并有助于太。 问题答案: alecxe,我相信这是您要寻找的一线客。 如下面评论中铬酸盐所建议的那样,您可以根据需
昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?