正则表达式确切的单词匹配

时间:2014-08-14 11:17:12

标签: regex printf match

我需要匹配行中的单词。例如:

The blue bird is dancing.
Yellow card is drawn
The day is perfect rainy
blue bird is eating

这四行位于文本文件l2中。

我希望匹配蓝鸟,黄卡,白天,每次打印一行,在该行之前打印匹配的单词。

y=regexp(l2,('^(?=.*blue bird)|(?=.*day)|(?=.*Yellow card)$'));

这是如何运作的?我无法得到结果。

sprintf('[%s]',y,l2);

2 个答案:

答案 0 :(得分:1)

MATLAB的正则表达式引擎不使用\b作为单词边界锚点but \< and \>

所以你的正则表达式会变成

y = regexp(l2, '^(?=.*\<(?:blue bird|day|Yellow card)\>).*', 'lineanchors');

假设l2是多行字符串。

答案 1 :(得分:1)

试试这个reg exp。

(?:blue bird|yellow card|day)