我需要匹配行中的单词。例如:
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);
答案 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)