RegEx反向引用后跟Dreamweaver中的数字

时间:2014-05-26 11:12:20

标签: regex dreamweaver

我想搜索包含数字“1”的特定模式,并将其替换为相同的字符串,后跟数字“2”。但是,如果我调用$12,那么输出就是文字“$ 12”。正则表达式引擎似乎试图找到内存插槽12,但我打算寻址内存插槽1,然后写入“2”。

我尝试创建fiddle,但这不会重现错误,因此显然它与我的编辑器有关。我正在使用Dreamweaver CS6。如果没有使用Dreamweaver,那么可能是我的Dreamweaver设置。

另外,我刚发现this question引用了我完全相同的问题 - 但提供的答案对我不起作用。 $012只写“$ 012”。我猜Dreamweaver RegExp引擎就像那样奇特。

有什么想法吗?

编辑:

给出示例文本......

This is item 1
This is house 3

...和模式((?:item|house) )\d

我尝试了什么我得到了什么

$12     | $12
$012    | $012
\g{1}2  | \g{1}2
$g{1}2  | $g{1}2
$12 | item2   // or "house"
${1}2   | ${1}2
"$1"+2  | "item"+2

期望的结果总是:

This is item 2
This is house 2

因为有人问:是的,我确定 RegExp复选框已激活,是的,我确定我在代码视图中,而不是设计视图。我总是在代码视图中工作。

我的Dreamweaver是CS6版本12.0 Build 5861。

2 个答案:

答案 0 :(得分:1)

这是Dreamweaver中一个众所周知的错误。幸运的是,有一些解决方法。

为了论证,我们假设您正在寻找字母,并希望附加2

方法1

我在Dreamweaver CS6中测试了以下内容。

输入: abc

在代码视图中搜索: ([a-z]+)

替换: $12

代码视图中的输出: abc2

设计视图中的输出: abc2

请注意,代码视图中的输出为abc2,但由于2编码为2,因此您会在网页上看到abc2

方法2:两步法

相同搜索。

替换: $1SOMETHINGDISTINCTIVE

然后搜索SOMETHINGDISTINCTIVE并替换为2

<强>最后

当然有些人认为真正的解决方法是在Komodo IDE(或他们喜欢的任何编辑器)中工作,但这不是你的问题。 :)

答案 1 :(得分:0)

假设测试字符串,即匹配或选择的字符串是

aabbbccbbbaacc2

情况1:使用向后引用进行匹配或选择


查找/搜索: (a +)(b +)(c +)\ 2 \ 1 \ 3 \ d

情况2:使用向后引用进行匹配或选择并替换


说我期望结果为 aacc9bbb

查找/搜索: (a +)(b +)(c +)\ 2 \ 1 \ 3 \ d

替换为: \ 1 \ 039 \ 2 要么 \ 1 $ 039 \ 2

因此,它不是\ 3而是\ 03或$ 03(在其后跟数字字符),位于“替换为”字段中。