【发布时间】:2013-09-26 12:10:11
【问题描述】:
我目前正在研究一个函数,它接受一个关键字列表和一个字符串(一个 looong 字符串)作为参数,我希望它返回每个匹配关键字的列表。问题是关键字可以是 2 个单词。
例如 - keyword1 : foobar、keyword2 : foo bar、keyword3 : barfoo)
字符串:
hi this is foobar, have you seen my foo bar, he is very fooBar ?
我想要一个带有 (foobar, foo bar) 的列表;
我得到的那一刻:
@matches = $string =~ m/\b(?:foobar|foo bar)\b/gi ;
这适用于简单的单词,但不适用于组合词:/
有什么想法吗?
感谢您的帮助。
【问题讨论】:
-
组合词是什么意思?
-
有一个空格,比如“foo bar”,我希望它是一个关键字。我的意思是我必须以最快的方式来做,这意味着只滚动一次字符串。
-
你能给我一个你不想匹配的例子吗?
-
是的,你可以有不止一次出现。
-
hum "foobar 匹配但 foobardoesnt ,whearas foo bar 匹配,FoO Bar 也是如此":D
标签: regex perl match keyword space