繁体   English   中英

PHP中的CSS / jQuery属性选择器

[英]css / jQuery attribute selector in php

在这个问题上,我实质上是在寻求有关正则表达式的帮助。

这是我当前正在使用的模式:

 preg_match_all("~\[([^\]]+)=([^\[]+)\]~", $search, $matches, PREG_SET_ORDER);

这适用于:

'[name=test][type=select]'

结果:

MATCH 1
1.  [1-5]   `name`
2.  [6-10]  `test`
MATCH 2
1.  [12-16] `type`
2.  [17-23] `select`

演示

问题来了

'[for=event[schedule]]'

显然,发生的是多余的[]阻止了正则表达式与字符串匹配。

我正在寻找有关如何修复正则表达式模式以获取此输出的建议:

MATCH 1
1.  [1-3]   `for`
2.  [5-19]  `event[schedule]`

如果要选择匹配[...]部分:

preg_match_all('~\[([^\]]+)=([^\]\[]+(?:\[[^\]]+\])?)\]~', $search, $matches, PREG_SET_ORDER);

要求它:

preg_match_all('~\[([^\]]+)=([^\]\[]+\[[^\]]+\])\]~', $search, $matches, PREG_SET_ORDER);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM