首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php中的css / jQuery属性选择器

php中的css / jQuery属性选择器
EN

Stack Overflow用户
提问于 2014-12-21 22:53:50
回答 1查看 52关注 0票数 0

在这个问题中,我基本上是在寻求一些正则表达式的帮助。

下面是我目前使用的模式:

代码语言:javascript
复制
 preg_match_all("~\[([^\]]+)=([^\[]+)\]~", $search, $matches, PREG_SET_ORDER);

它适用于:

代码语言:javascript
复制
'[name=test][type=select]'

结果:

代码语言:javascript
复制
MATCH 1
1.  [1-5]   `name`
2.  [6-10]  `test`
MATCH 2
1.  [12-16] `type`
2.  [17-23] `select`

演示

问题来了

代码语言:javascript
复制
'[for=event[schedule]]'

显然,所发生的事情是额外的[]阻止正则表达式匹配字符串。

我正在寻找关于如何修复regex模式以获得此输出的建议:

代码语言:javascript
复制
MATCH 1
1.  [1-3]   `for`
2.  [5-19]  `event[schedule]`
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-21 23:09:05

如果您想可选地匹配[...]部件:

代码语言:javascript
复制
preg_match_all('~\[([^\]]+)=([^\]\[]+(?:\[[^\]]+\])?)\]~', $search, $matches, PREG_SET_ORDER);

要求:

代码语言:javascript
复制
preg_match_all('~\[([^\]]+)=([^\]\[]+\[[^\]]+\])\]~', $search, $matches, PREG_SET_ORDER);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27594627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档