在引号之间提取文本并在标记之后插入

时间:2014-06-02 21:12:15

标签: regex notepad++

我是一个正则表达的noobie,似乎无法绕过它。事情是,我没有时间,因为我在时钟,需要做其他事情。我希望得到一个直接的答案,并解释它是如何工作的(如果可能的话)。

我有什么:

<li id=\"B1031.001\"><a href=\"#\">Bolted shear tab gravity connections</a></li>

我需要什么:

<li id=\"B1031.001\"><a href=\"#\">B1031.001 - Bolted shear tab gravity connections</a></li>

基本上,我需要获取'id'属性的值,并在它前面添加标签的文本。我希望有一种方法可以在Notepad ++中使用正则表达式来加快处理速度。

感谢您的阅读, 帕特里克

2 个答案:

答案 0 :(得分:1)

你可以这样做:

search:  <li id=\\"([^"]+)\\"><a href=\\"#\\">\K
replace: $1 -      (<- there is a trailing space)

\K从匹配结果中删除左侧匹配的所有内容。换句话说,左边匹配的所有内容都不会被替换。唯一被替换的是>之后的空字符串(来自a标记)。 (搜索模式的目标只是捕获id值并到达插入位置。)

([^"]+)捕获组1中id属性的内容。[^"]所有不是双引号,+一次或多次)

$1指的是此捕获组的内容。

答案 1 :(得分:0)

在Notepad ++中,您可以搜索:

 <li id=\\[\"](.*?)[\"]><a href=\\"#\\">

并将其替换为:

<li id=\"$1\"><a href=\"#\">$1 - 

基本上它会替换整个String,但用$ 1代替括号内的正则表达式匹配的内容。