正则表达式:匹配未包含在[]中的空格

前端之家收集整理的这篇文章主要介绍了正则表达式:匹配未包含在[]中的空格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,对于此字符串,

div.img-wrapper img[title="Hello world"]

我想匹配第一个空格而不是第二个空格(包含在[]中).什么是正则表达式?

解决方法

以下表达式将通过使用前瞻断言来完成工作.

_(?>[^[\]]*(\[|$))

下划线代表一个空间.此表达式不支持嵌套括号,因为正则表达式不足以表达嵌套的匹配结构.

_          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).
  )
)

UPDATE

这是使用负面预测断言的另一个(并且更美观)解决方案.

_(?![^[\]]*])

它声称空格后面的下一个括号不是结束括号.

猜你在找的正则表达式相关文章