繁体   English   中英

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

[英]String Regex for Phrases That Match a Pattern

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

这样的模式应该起作用

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

这匹配一个或多个单词字符的任何序列,然后是一个或多个空格字符,然后是colored文字序列,然后是一个或多个空格字符,再是一个或多个单词字符。

如果您想轻松地提取任一侧的两个单词,则可能要将它们放在捕获组中 ,如下所示:

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

如果你想找到的不仅仅是那些包含单词多个短语colored ,你可以使用的交替,就像这样:

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

这将匹配“ 蓝色自行车 ”,“ 樱桃味伏特加 ”和“ 培根香薰蜡烛 ”之类的字符串。

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

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

这应该为您工作。

Pattern samplePattern = Pattern.compile("[A-Za-z0-9._%-]+colored[A-Za-z0-9._%-]");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM