字符串为:
<aaa>
bbb
>
通配符应包括换行符,应介于字符串1和2以及2和3 之间
由于我对正则表达式完全误解,我写下了这样的话:
$end = preg_replace('/^<aaa>('s'S)*bbb('s'S)*>$/','',$start);
有人能帮我做这件事吗?谢谢
举个例子,我的起始字符串是:
$start = "<aaa><b>QqRr</b>
<zzz>dddbbb
</zzz>Test1234</aaa>";
最后看起来像
$end = "Test1234</aaa>";
您构建正则表达式过于复杂。
相反,删除所有,但最后一个">
"之后的内容:
/^.*>([^>]*)$/s
^
1
s修饰符就是这样。也匹配行分隔符。
代码中:
$end = preg_replace('/^.*>([^>]*)$/s',''1', $start);
然后,如果其他两种模式对您很重要,您可以进一步扩展以匹配它们:
/^<aaa>.*bbb.*>([^>]*)$/s
^^^^^ ^^^ ^
3 2 1
我最终使用了strip_tags();以解析数据。有了它,您还可以添加允许的标记,因此任何
最终都可以被替换为''r''n以保持