我有这段文字:
W / NNP是/ NNP获得/ NNP付费/ NNP for / IN Going / NNP到/ TO学院/ NNP!/。 检查/ NNP it / PRP out / RP here / RB!/。 http / NN:/: //sldollar.notlong.com/JJ apple / NN iphone / NN TGIF / NNP猪/ NN流感/ NN
我目前正在使用此正则表达式来捕获一些感兴趣的区域:
[a-zA-Z]*/NN[PS]* [a-zA-Z]*/NN[PS]*
我正在使用RegexPal对此进行测试。
这会捕获TGIF/NNP swine/NN
但不捕获swine/NN flu/NN
。关于如何修复我的正则表达式来捕获它的任何建议?
答案 0 :(得分:2)
如果其他人需要这个,我想答案是使用积极的前瞻:
([a-zA-Z]*/NN[PS]* )(?=([a-zA-Z]*/NN[PS]*))
答案 1 :(得分:0)
多个匹配不能重叠。
apple/NN iphone/NN TGIF/NNP swine/NN flu/NN
AAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCC DDDDDDDDDDDDDDD
上面标记为A和B的匹配相互跟随,但因为C片段在比赛A的中间开始(同样对于B中的D),所以它们不匹配。
您需要匹配一次,然后在上一个起点之后的某个时刻重新搜索,或者使用前瞻,这样后一部分就不会消耗。