匹配正则表达式php两个字符串之间的字符串在中间

时间:2014-03-06 16:44:34

标签: php regex

我希望得到一个由一个单词组成的字符串,其前后有一个分隔符

我试过但是没有工作

$stringData2 = file_get_contents('testtext3.txt');
$regular2=('/(?<=first del)*MAIN WORD(?=last del)*\s');      

preg_match_all($regular2,                          
$stringData2,
$out, PREG_PATTERN_ORDER);

非常感谢你的帮助

3 个答案:

答案 0 :(得分:2)

不需要量词,最后添加分隔符,将\s放在预测中。

'/(?<=first del)MAIN WORD(?=last del\s)/'

答案 1 :(得分:0)

这个正则表达式

(?<=xx)[^\s]*(?=yy)

匹配hello

xxhelloyy

但未能匹配:

xxhello worldyy

这可能就是你要找的东西。

答案 2 :(得分:0)

如果你想在匹配中包含分隔符字符串,那么你不应该使用超前或外观或后面看。这应该是基本的东西,比如说。

/\s?first del MAIN WORD last del\s?/

如果你确实想要返回JUST MAIN WORD部分的匹配,那么这将有效。

/(?<=\s?first del)MAIN WORD(?=last del\s?)/

如果你愿意的话,在它的最后放一个'i'以使它不区分大小写。我只提到这一点,因为在上面给出的例子中,示例文本与所需的响应之间存在不同的情况。