正则表达式:前一次出现的字符

时间:2014-06-30 14:20:57

标签: regex

在这个以逗号分隔的文字中,我想用“匹配”来捕捉这些部分。介于两者之间,以及任何一方的逗号

text,something,hello,house,ymatchy,motor,xmatchx,yoyo

目前我已经

,.*?match.*?,

然而它匹配

[1] ,something,hello,house,ymatchy,
[2] ,xmatchx,

我只想在文本之前直接匹配逗号,而不是从头开始 - 我只想要,ymatchy,

编辑:

如果我匹配多个字符,比如说url编码相当于一个逗号(%2C)

,它会如何工作?
text%2Csomething%2Cmatch%2Chello%2Chouse%2Cy%2match%2y%2Cmotor%2Cxmatchx%2Cyoyo

我想要匹配

[1] %2Cmatch%2C
[2] %2Cy%2match%2y%2C
[3] %2Cxmatchx%2C

2 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式

,[^,]*match[^,]*,

DEMO

如果您需要,ymatchy,,请删除全局标记。

更新

%2C\w+match\w+%2C

DEMO

答案 1 :(得分:0)

我设法解决了我的下半场

%2C((?!%2C).)*match((?!%2C).)*%2C

我已经接受了Avinash Raj的回答,因为他回答了我原来的问题。