Php子串提取。在之前 - 没有 - 获得字符串

时间:2016-12-09 15:44:52

标签: php regex

我想问一下,我怎样才能获得文本----(这个变量中不需要abc文本)和不包含----的文本。例如:

"text text text text ---- abc text",

"text text text text"

对于第一个变量,我只想获得

"text text text text"
"text text text text

对于第二个变量,我想在

之后只获得文本
"abc text"

我想首先得到2个变量,里面只有“文本文本文本文本”(文本之前----来自两者,不包含----和文本之后)和其他变量文本仅在---之后 - 。 我怎么能这样做? 感谢。

1 个答案:

答案 0 :(得分:1)

preg_match('/(.*?)\s*----\s*(.*)/', 'text text text text ---- abc text', $match);
var_dump($match);

这将匹配任何文本除以一些可选的空格(0 - 无限制),4个破折号和一些可选的空格。括号中的模式在$match[1]$match[2]中捕获。

上面的示例是匹配分隔符的第一次出现。如果您想要最后一个,请使用.*而不是?。如果要在每个分隔符上拆分,请使用preg_split。