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

问题描述 投票:0回答:2

我想搜索一个包含数字“ 1”的特定模式,并用相同的字符串替换其后跟数字“ 2”。但是,如果我调用$12,则输出为文字“ $ 12”。 regex引擎似乎试图找到内存插槽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版内部版本5861。

regex dreamweaver
2个回答
1
投票

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

为了论证,假设您正在寻找字母并想要附加2

方法1

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

输入: abc

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

替换: $12

在代码视图中输出: abc2

设计视图中的输出: abc2

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

方法2:两步走法

相同搜索。

替换: $1SOMETHINGDISTINCTIVE

然后搜索SOMETHINGDISTINCTIVE并替换为2

最后

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


0
投票

让我们说一下测试字符串,即要匹配或选择的字符串是

aabbbccbbbaacc2

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


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

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


说我期望结果为aacc9bbb

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

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

所以在“替换为”字段中使用反向引用时,它不是\ 3它是\ 03或$ 03。

© www.soinside.com 2019 - 2024. All rights reserved.