欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

哎,求2个正则合并成一个正则怎么写啊,谢谢

程序员文章站 2022-06-11 22:40:23
...
这是要匹配的内容
Primary Color:Multi-Color
Multi Pack Indicator:
No

Battery Type:
Does Not Contain a Battery


这个个正则,怎么合并成一个啊
$a = preg_match_all('/LightRowHead.*?>(.*?):.*?LightRow.*?>(.*?)', $content, $a);$a = preg_match_all('/DarkRowHead.*?>(.*?):.*?DarkRow.*?>(.*?)', $content, $b);

我这样写不对
$a = preg_match_all('/[LightRowHead|DarkRowHead].*?>(.*?):.*?[LightRow|DarkRow].*?>(.*?)', $content, $c);


求高人指点


回复讨论(解决方案)

(xx|yy)

用方括号括起就变成字符单选了,要用圆括号
$a = preg_match_all('/(LightRowHead|DarkRowHead).*?>(.*?):.*?(LightRow|DarkRow).*?>(.*?)', $content, $LightRowHead);
不想加入向前引用的话可写作
$a = preg_match_all('/(?:LightRowHead|DarkRowHead).*?>(.*?):.*?(?:LightRow|DarkRow).*?>(.*?)', $content, $LightRowHead);

需要前后配对的话可写作
$a = preg_match_all('/(LightRow|DarkRow)Head.*?>(.*?):.*?\\1.*?>(.*?)', $content, $LightRowHead);

用方括号括起就变成字符单选了,要用圆括号
$a = preg_match_all('/(LightRowHead|DarkRowHead).*?>(.*?):.*?(LightRow|DarkRow).*?>(.*?)', $content, $LightRowHead);
不想加入向前引用的话可写作
$a = preg_match_all('/(?:LightRowHead|DarkRowHead).*?>(.*?):.*?(?:LightRow|DarkRow).*?>(.*?)', $content, $LightRowHead);

需要前后配对的话可写作
$a = preg_match_all('/(LightRow|DarkRow)Head.*?>(.*?):.*?\\1.*?>(.*?)', $content, $LightRowHead);
果然,csdn的人就是热情,谢谢你和二楼..