Twi*_*ell 2 networking notepad++ regex
我从日志文件中有这样的字符串
rule family="ipv4" source address="54.246.81.158" reject
rule family="ipv4" source address="175.36.129.24" reject
Run Code Online (Sandbox Code Playgroud)
如何从每个字符串中匹配一个 IP 地址,然后在 Notepad++ 文本编辑器中使用正则表达式用匹配的 IP 替换原始地址?
预期结果:
54.246.81.158
175.36.129.24
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用 regexp 和仅搜索和替换来实现目标。如果有可能在 Notepad++ 中,我知道我可以使用宏功能,但我不想这样做。
因此,首先,我们将 IP 与正则表达式 ( \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
)匹配。其次,我们用第 1 步中的 IP 替换原始字符串,但我不确定是否可以使用 Notepad++。如果我失败了,我将使用 vim :-)
^.+?((?:\d+\.){3}\d+).+$
$1
. matches newline
解释:
^ : beginning of line
.+? : 1 or more any character but newline
( : start group 1
(?: : start non capture group
\d+ : 1 or more digit
\. : a dot
){3} : end group, must appear 3 times
\d+ : 1 or more digit
) : end group 1
.+ : 1 or more any character but newline
$ : end of line
Run Code Online (Sandbox Code Playgroud)
替代品:
$1 : content of group 1 (ie. the IP)
Run Code Online (Sandbox Code Playgroud)
给定示例的结果:
54.246.81.158
175.36.129.24
Run Code Online (Sandbox Code Playgroud)
要确保您拥有 IP 地址,请使用
((?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))
Run Code Online (Sandbox Code Playgroud)
代替
((?:\d+\.){3}\d+)
Run Code Online (Sandbox Code Playgroud)