美好的一天。
我在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小时)答案 0 :(得分:1)
除了反向引用问题,你的正则表达式可以使用一些改进。在Dreamweaver 6中测试:
搜索:([4-9])(,|</p>)
替换:<a href="aup-larondelle-0001.html#p$1">$1</a>$2
$1
而非\1
4|5|6|7|8|9
可以通过字符范围[4-9]
更紧凑地表达(字符范围是正则表达式的主力之一)。