如何通过正则表达式文本删除

时间:2014-10-29 08:20:36

标签: regex notepad++

我们如何使用正则表达式在Notepad ++中删除特定字符串周围不需要的文本?不必删除带数字的字符串。我们需要的数字(字符串)总是被“onRemoveVariable([0-9] *)”包围。

来源:

<table>
<tr><td style="css">
<a href="#" onclick="onRemoveVariable(12354);">del</a>
<a href="#" onclick="onEditVariable(1235446);">edit</a>
</td></tr>
<tr><td style="css">
<a href="#" onclick="onRemoveVariable(1231584);">del</a>
<a href="#" onclick="onEditVariable(12354631);">edit</a>
</td></tr>

结果:

12354
1231584

有人有想法吗?

Beste问候 马里奥

3 个答案:

答案 0 :(得分:1)

您需要找到前面有\d+的所有数字onRemoveVariable(和后面的)。 使用前瞻和后瞻断言。

(?<=onRemoveVariable\()(\d+)(?=\))

答案 1 :(得分:1)

您可以使用此正则表达式删除除onRemoveVariable部分之间的数字之外的所有内容:

^.*?onRemoveVariable\((\d+)\).*$|.*

这将首先尝试获取数字,如果没有找到,则匹配整行。

替换字符串:

$1

如果数字匹配,则替换字符串将仅返回该数字。如果没有,则$1将为空,结果将为空行。

regex101 demo

如果您现在想要删除多个空行,可以使用以下内容:

\R+

并替换为:

\r\n

然后手动删除任何剩余的空行(此替换最多可以有2个,一个在开头,一个在结尾)。 \R匹配任何换行符,\R+匹配多个换行符。因此,上面用单个换行符替换了多个换行符。


^                      # Beginning of line
  .*?                  # Match everything until...
  onRemoveVariable\(   # Literal string oneRemoveVariable( is matched
  (\d+)                # Store the digits
  \)                   # Match literal )
  .*                   # Match any remaining characters
$                      # End of line
|                      # OR if no 'onRemoveVariable(` is found with digits and )...
  .*                   # Match the whole line

答案 2 :(得分:0)

您可以使用此正则表达式匹配您想要的数字:

/onRemoveVariable\((\d+)\)/g

DEMO(查看右侧面板上的匹配信息)

希望它有所帮助。