首页 > 解决方案 > '' php 之间匹配短语的正则表达式

问题描述

我想匹配''(单引号)内的内容。例如:'for example'应该返回forexample。这只是我要分析的句子的一部分,我用于preg_split(\s)整个句子,所以'for example'will 变为'for and example'.

现在我已经试过/^'(.*)|(.*)'$/了,它只返回for而不是example,如果我把它说成是/^(.*)'|'(.*)$/,它只返回example而不是for。我应该如何解决这个问题?

标签: phpregex

解决方案


要获取单个句子(然后您想要拆分),您可以使用preg_match_all()来捕获两个单引号之间的任何内容。

preg_match_all("~'([^']+)'~", $text, $matches)
$string = $matches[1];

$string现在包含类似“带有单词的示例字符串”之类的内容。现在,如果您想根据特定的序列/字符拆分字符串,可以使用explode()

$string = "example string with words";
$result = explode(" ", $string);
print_r($result);

给你:

Array
(
    [0] => example
    [1] => string
    [2] => with
    [3] => words
)

推荐阅读