我有一些类似这样的内容
<p>some content, paragraph 1</p>
<p>some content, paragraph 2</p>
<p>some content, paragraph 3</p>
我希望你能够翻译第一段,即:
<p>some content, paragraph 1</p>
有人能帮我处理正则表达式吗?
'<p>(.*.)</p>'
似乎无效。
我有一些类似这样的内容
<p>some content, paragraph 1</p>
<p>some content, paragraph 2</p>
<p>some content, paragraph 3</p>
<p>some content, paragraph 1</p>
有人能帮我处理正则表达式吗?
'<p>(.*.)</p>'
似乎无效。
你可以通过以下方式实现:
if (preg_match('%(<p[^>]*>.*?</p>)%i', $subject, $regs)) {
$result = $regs[1];
} else {
$result = "";
}
你可以使用正则表达式测试字符串,如果匹配成功,你只能获取第一个匹配结果,如果没有匹配成功,$result 将是一个空字符串。
如果你需要获取多个匹配结果,你可以遍历 $regs 数组。如果你需要查找其他标签,只需更改正则表达式即可。例如,查找 IMAGE 标签,你可以使用:
(<img[^>]*>.*?</img>)
编辑:如果您正在逐行处理(仅查找您要查找的标签),则可以将^...$放在表达式周围以匹配整行,例如:
if (preg_match('%^(<p[^>]*>.*?</p>)$%im', $subject, $regs)) {
$result = $regs[1];
} else {
$result = "";
}
祝一切顺利,敬礼。
避免使用<pre>标签,可以使用以下方法:
if (preg_match('/(<p(>|\s+[^>]*>).*?<\/p>)/i', $subject, $regs)) {
$result = $regs[1];
} else {
$result = "";
}
if (preg_match("/\b1\b/i", "some content, paragraph 1")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
其中1为匹配项...
这有帮助吗?