【发布时间】:2015-11-05 02:10:36
【问题描述】:
所以我知道如何从 php 字符串中提取文本,当它被两个不同的字符(即 [abc])完全分隔时......
但是,我现在面临一个有问题的情况,我需要提取位于同一字符 ('/') 的两个实例之间的文本。更棘手的是,这可能在同一个字符串中发生多次。
一个例子应该有助于更清楚地说明这一点:
"This is /a/ silly ex/amp/le of what I /me/an."
在这种情况下,我想抓住'a', 'amp' and 'me'。
这些示例显示了我可能遇到的各种情况(不同的长度以及我不是抓取整个单词而是单词中的字母的情况)。
我尝试过的:
('/(\/.+?)+(\/)/i')
但是,正如预期的那样,这会捕获第一个和最后一个斜杠之间的所有内容。理想的方式是匹配直到下一个斜杠出现,而不是最后一个...
我已经在谷歌上搜索了很长一段时间,但我只是想出了两个不同分隔符的案例。
【问题讨论】:
-
只是提示,您不必使用
/作为分隔符。当您的搜索模式包含/时,可以提高可读性以使用不同的字符并避免转义:#/.+?/# -
@miken32 啊,是的,好点。我以前用过这个(讽刺的是,对于较短的正则表达式),但没想到在这里使用它。