我正在尝试构建一个preg_match_all,以便我可以使用该数组,但问题是我无法优化我的正则表达式。
示例输入是:
#|First Name|#
This text shouldn't be caught
#|Second Value|#
First Name和Second Value都应该在数组中。
这是我尝试过的:
preg_match_all('/\#\|(.*?)\|\#\]/',$html, $out);
和
preg_match_all ("/^#\|*\|#*$/i", $html, $out);
答案 0 :(得分:1)
试试这个正则表达式:
/\#\|(.*?)\|\#/
答案 1 :(得分:1)
第一个是关于正确的,它只在末尾附近包含\]
,这会打破你想要的东西。使用
/\#\|(.*?)\|\#/
确实给了我正确的结果,匹配在$out[1]
。
答案 2 :(得分:0)
尝试:
preg_match_all('/#\|(.*?)\|#/', $html, $out);
不应该需要转义#。要在#之间指定#,您也可以使用
preg_match_all('/#\|([^#]*)\|#/', $html, $out);
答案 3 :(得分:0)
有几件事,你需要添加'。'你的酒吧之间的角色。这个字符意味着匹配任何字符,没有它你说匹配零或更多'|'字符。您还需要为多行匹配添加m修饰符。
/^#\|.*\|#$/im