我想搜索一个包含数字“ 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。
这是Dreamweaver中的一个众所周知的错误。幸运的是,有解决方法。
为了论证,假设您正在寻找字母并想要附加2
。
方法1
我在Dreamweaver CS6中测试了以下内容。
输入: abc
在代码视图中搜索: ([a-z]+)
替换: $12
在代码视图中输出: abc2
设计视图中的输出: abc2
请注意,代码视图中的输出为abc2
,但是由于2
编码为2,因此在网页上会看到abc2
方法2:两步走法
相同搜索。
替换: $1SOMETHINGDISTINCTIVE
然后搜索SOMETHINGDISTINCTIVE
并替换为2
最后
当然,有人会说真正的解决方法是在Komodo IDE(或他们喜欢的任何编辑器)中工作,但这不是您的问题。 :)
让我们说一下测试字符串,即要匹配或选择的字符串是
aabbbccbbbaacc2
情况1:使用向后引用进行匹配或选择
查找/搜索:(a +)(b +)(c +)\ 2 \ 1 \ 3 \ d
案例2:使用向后引用进行匹配或选择并替换
说我期望结果为aacc9bbb
查找/搜索:(a +)(b +)\ 1(\ d)
替换为:\ 1 \ 039 \ 2要么\ 1 $ 039 \ 2
所以在“替换为”字段中使用反向引用时,它不是\ 3它是\ 03或$ 03。