我正在尝试使用正则表达式在字符串中抓取一个字符串.
我看了看,但我似乎无法得到任何我必须工作的例子.
我需要抓取html标签<code>和</ code>以及它们之间的所有内容.
然后我需要从父字符串中提取匹配的字符串,对两者执行操作,
然后将匹配的字符串放回父字符串中.
这是我的代码:
$content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <code>Donec sed erat vel diam ultricies commodo. Nunc venenatis tellus eu quam suscipit quis fermentum dolor vehicula.</code>"
$regex='';
$code = preg_match($regex, $text, $matches);
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这些没有成功:
$regex = "/<code\s*(.*)\>(.*)<\/code>/";
$regex = "/<code>(.*)<\/code>/";
Run Code Online (Sandbox Code Playgroud)
pio*_*ouM 30
您可以使用以下内容:
$regex = '#<\s*?code\b[^>]*>(.*?)</code\b[^>]*>#s';
Run Code Online (Sandbox Code Playgroud)
\b确保<codeS>不捕获拼写错误(如).[^>]*使用属性(例如类)捕获标记的内容.s用换行符捕获内容.请在此处查看结果:http://lumadis.be/regex/test_regex.php?id = 1081
Joe*_*Joe 24
$regex = '#<code>(.*?)</code>#';
Run Code Online (Sandbox Code Playgroud)
使用#作为分隔符而不是/因为我们不需要转义/in</code>
正如Phoenix在下面发布的那样,.*?用来使.*("任何东西")匹配尽可能少的字符,然后才会遇到</code>(称为"非贪婪量词").那样,如果你的字符串是
<code>hello</code> something <code>again</code>
Run Code Online (Sandbox Code Playgroud)
你会匹配hello,again而不仅仅是匹配hello</code> something <code>again.
小智 22
这个功能对我有用
<?php
function everything_in_tags($string, $tagname)
{
$pattern = "#<\s*?$tagname\b[^>]*>(.*?)</$tagname\b[^>]*>#s";
preg_match($pattern, $string, $matches);
return $matches[1];
}
?>
Run Code Online (Sandbox Code Playgroud)
你也可以用/<code>([\s\S]*)<\/code>/msU
这个抓住NEWLINES!
| 归档时间: |
|
| 查看次数: |
96096 次 |
| 最近记录: |