具有多个条件的负前瞻

时间:2018-09-13 05:05:43

标签: javascript regex regex-lookarounds

我需要提取$ x,但不提取$$ x和'$ x'。

  1. 读取$$ x无效。请使用$ x。
  2. 您选择了“ $ x”值作为$ x。

以下正则表达式适用于1。

\$x(?!$)\

我使用了以下替换(|),显然第二个字符串失败了。

\$x(?!$)|\$x(?!\')\

如何检查多个否定前瞻?

P.S:应该与Javascript Regex兼容。

2 个答案:

答案 0 :(得分:1)

以下RegEx应该可以解决问题:

(?<!')(?<!\$)\$x(?!')

首先检查开头是否没有',而在$前面没有$x,最后不要以'结尾。

使用JavaScript编辑

^\$x(?!')

这将在开始处选择$x(没有'),而不是'

答案 1 :(得分:1)

您还可以简化@revo的正则表达式,从而消除前瞻性:

(^|[^'$])\$x([^']?)

替换为:

$1\$y$2

See demo: