正则表达式查找&替换插入\ 1而不是字符串

时间:2014-06-12 15:49:05

标签: html regex string replace dreamweaver

美好的一天。

我在Find& amp;中使用正则表达式替换Adobe Dreamweaver CS6中的字符串。

这是我的查找字段:

( )(4|5|6|7|8|9)(,|</p>)

这是我的替换字段:

\1<a href="aup-larondelle-0001.html#p\2">\2</a>\3

我的理解是我输入的内容应该是指导Find&amp;替换函数以查找以空格开头的任何数字4-9,然后使用逗号或close-paragraph标记。它应该替换为字符串1,即空格,然后是<a href="aup-larondelle-0001.html#p,后跟字符串2,这将是找到的任何特定数字,然后是">,然后是字符串2(这将是链接的可见,可点击部分),然后是锚点关闭标记,后跟字符串3,它可以是a或close-paragraph标记。

我实际得到的是这个输出:

\1<a href="aup-larondelle-0001.html#p\2">\2</a>\3

这正在替换我为电子书建立的索引中的“5”。因此,查找部分工作得很漂亮,但出于某种原因,我在替换时会得到不可思议的结果。

关于什么让我搞砸的任何想法?非常感谢你的时间!

编辑:添加了代码标记,以便显示我的代码。对不起!

编辑2:为了清楚起见,我所说的是我实际上从查找函数获得\1而不是字符串1的实际值。

编辑3:只是为了表明我已经做了一些研究,我正在为我的发现和基础绘制基本格式。取代Liz Castro非常有用的博客“Pigs,Gourds,and Wikis”。她在2010年7月20日的参赛作品推荐了这种格式,可以在this link找到。我也曾在那里请求过帮助,但卡斯特罗女士是一名女性,Stack Overflow就是军团。 :)

答案:我找到了问题的答案。事实证明,在Adobe Dreamweaver中,它们不使用\来表示字符串。他们用$代替。因此,将$替换为每次出现的\导致可用输出。好哇! (显然是因为是新手而无法回答我自己的问题8小时)

1 个答案:

答案 0 :(得分:1)

除了反向引用问题,你的正则表达式可以使用一些改进。在Dreamweaver 6中测试:

搜索:([4-9])(,|</p>)

替换:<a href="aup-larondelle-0001.html#p$1">$1</a>$2

  1. 如您所述,Dreamweaver中的反向引用应采用$1而非\1
  2. 的形式
  3. 无需捕捉空间。您可以直接用空格替换。
  4. 表达式4|5|6|7|8|9可以通过字符范围[4-9]更紧凑地表达(字符范围是正则表达式的主力之一)。