java - 与模式匹配的短语的字符串正则表达式

标签 java regex

我一直在试图理解包含可变单词的短语的正则表达式模式。例如,如果我正在扫描一个段落,我希望能够提取与此模式匹配的所有短语,“_ 彩色 _”。两个空白点可以是任何内容,因此“红色卡车”和“蓝色自行车”都将与正则表达式匹配并被提取。如果有人能帮助我,我将不胜感激,谢谢!

最佳答案

像这样的模式应该有效

\w+\s+colored\s+\w+

这匹配一个或多个 word characters 的任何序列,后跟一个或多个空白字符,后跟文字序列 colored,后跟一个或多个空白字符,后跟一个或多个单词字符。

如果您想轻松提取两侧的两个单词,您可能需要将它们放在 capture groups 中,像这样:

(\w+)\s+colored\s+(\w+)

如果您想要查找更多短语,而不仅仅是包含单词 colored 的短语,则可以使用替换,如下所示:

(\w+)\s+(colored|flavored|scented)\s+(\w+)

这将匹配“蓝色自行车”、“樱桃味伏特加”和“培根香味蜡烛”等字符串。 p>

此外,因为这是 Java,所以不要忘记转义字符串文字中的 \ 字符:

Pattern pattern = Pattern.compile("\\w+\\s+colored\\s+\\w+");

关于java - 与模式匹配的短语的字符串正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20578394/

相关文章:

java - Spring 3.2 @ResponseBody 不使用模型返回值

java ,正确使用静态变量来防止死锁——同步

java - 如何动态更改警报文本?

java - 设置特殊正则表达式的长度

javascript - 从测试中排除文件

java - Matcher 会跳过第一场比赛吗?或者我做错了什么

java - 使用 servlet 的重定向

java - 如何在 JSF 中为标准 validator 设置自定义消息?

Javascript 正则表达式 : wrap words and spaces into tags

regex - R 正则表达式 : how to remove "*" only in between a group of variables