所以我知道如何从php字符串中提取文本,当它被两个不同的字符(即[abc])干净地隔开时...
但是,我现在面临一个问题,我需要提取位于同一个角色的两个实例之间的文本(' /')。甚至更棘手的是,这可能会在同一个字符串中多次发生。
一个例子应该有助于使这个更清晰:
"This is /a/ silly ex/amp/le of what I /me/an."
在这种情况下,我想抓住'a', 'amp' and 'me'
。
这些例子显示了我可能遇到的各种案例(不同的长度和案例,我没有抓住整个单词而是单词中的字母)。
我尝试过的事情:
('/(\/.+?)+(\/)/i')
但正如预期的那样,它捕获了第一个和最后一个斜杠之间的所有内容。理想的方法是匹配直到NEXT出现斜杠,而不是最后一个......
我一直在谷歌上搜索这段时间,但我只提出了两个不同分隔符的案例。
答案 0 :(得分:1)
您可以使用preg_match_all
获得多个匹配。
$string = 'This is /a/ silly ex/ampl/e of what/ I me/an';
$regex = '/\/.+?\//';
preg_match_all($regex, $string, $matches);
print_r($matches);
Array
(
[0] => Array
(
[0] => /a/
[1] => /ampl/
[2] => / I me/
)
)
答案 1 :(得分:0)