例如,对于此字符串,
div.img-wrapper img[title="Hello world"]
我希望匹配第一个空格而不是第二个空格(包含在[]中)。什么是正则表达式?
答案 0 :(得分:4)
以下表达式将通过使用前瞻断言来完成工作。
_(?>[^[\]]*(\[|$))
下划线代表一个空间。此表达式不支持嵌套括号,因为正则表达式不足以表达嵌套的匹配结构。
_ Match the space and
(?> assert that it is not inside brackets
[^[\]]* by matching all characters except brackets
( followed by either
\[ an opening bracket (a space inside brackets
will have a closing bracket at this position)
| or
$ or no more characters (end of line).
)
)
<强>更新强>
这是使用负面预测断言的另一个(也是更美丽的)解决方案。
_(?![^[\]]*])
它声称空格后面的下一个括号不是右括号。