我在httpd.conf
文件中有这个字符串:
Listen 12.0.0.0:80
我希望用=
替换ip地址和分号。
我的批处理命令是:
type C:\h\httpd.conf |repl "Listen (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):" "Listen =" >C:\h\h.conf
结果为Listen =80
但是如果Listen
和ip地址之间有几个白色字符,那么如何编写正则表达式?
示例:
Listen
12.0.0.0:80
答案 0 :(得分:0)
我希望我能正确理解这一点。
您正在尝试用某些内容替换IP地址和端口,并希望将空格作为开始和结束标记。
由于我不确定你到底想要什么,我只想解释一些基本规则:
\d{1,3}
这与说法相同:1 - 3位 例如:123或789或999
正则表达式中的。将匹配任何内容!你应该逃避它。
此:
\ d {1,3}。\ d {1,3}。\ d {1,3}。\ d {1,3}
将匹配1-3位数字,后跟任何内容,后跟1-3位数字...
例子:
999a888b777c666但当然也有IP地址:127.0.0.1
(和)在您的示例中不执行任何操作。你可以删除它们。
如果你想匹配一个空格字符,你可以简单地写一下。
"Listen (\d{1,3}. \d{1,3}. \d{1,3}. \d{1,3})"
只会将IP地址与空格匹配:
127. 0. 0. 1
如果您想让它们成为可选项,请在之后添加 * :
"Listen *(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})"
注意“听”后空格后的“*”,它允许有更多的空格 例如:
Listen 127.0.0.1
如果要将IP地址与端口匹配
"Listen *(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):\d{1,5}"
如果要再次打印匹配值,通常为\ 1(\ 2,...)
type C:\h\httpd.conf |repl "Listen (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})" "Listen =" >C:\h\h.conf
将 Listen =
替换 Listen 127.0.0.1:8080type C:\h\httpd.conf |repl "Listen (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})" "Listen = \1" >C:\h\h.conf
将(可能)用 Listen = 127.0.0.1
替换 Listen 127.0.0.1:8080希望有所帮助。