作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我写
(?<=\()\w+(?=\))
\w+ (?<=\()\w+(?=\))
最佳答案
环视不消耗字符!
这是一个逐步查看它的方法(可能不是最好的,但无论如何我都是这样解释的):
第一个字符是 L
,正则表达式引擎将其与 \w+
进行比较并同意这是一场比赛。 T
也是如此,然后 E
.
在空格处,正则表达式引擎在正则表达式中看到一个空格,这也很好。
接下来是开头括号,但是正则表达式看到了什么?请记住,环视不消耗字符,因此 \(
在 (?<=\()
实际上并没有被消耗和 \(
不匹配什么\w+
火柴!
您可能会考虑使用这些字符的正则表达式:\w+ \w+
,但在第二个 \w+
上有条件,它必须在括号之间找到。条件可能满足,但表达式本身不匹配任何括号!
要使其匹配,您应该添加括号:
\w+ \((?<=\()\w+(?=\))\)
(
,与提供的表达式一致,它向前移动。
T
.首先,它是否匹配下一个字符,
\w+
?是的,第二,在它之前有一个开放的括号吗?是的。
e
,但是
\w+
还是可以满足的,所以匹配
e
与另一个
\w
.这种情况一直持续到
t
.
t
之后是否有结束括号?是的,因此进行下一个检查。
LTE (Test
)。
\w+ \(\w+\)
关于正则表达式 - 对环视功能感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237729/
我想在基于 DFA 的正则表达式匹配器中实现“词边界”匹配。谁能告诉我这是怎么做到的? 为了提供一些背景知识,我目前正在使用“dk.brics.automaton”库,但它不支持断言(例如 \b,字边
我是一名优秀的程序员,十分优秀!