2014-02-18 61 views
0

我有這個字符串我httpd.conf文件:如何在.bat文件中設置正則表達式?

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

你的問題在我看來有點不清楚。你的意思是你想創建一個在動態ip +端口上偵聽的批處理文件? – Ruben

+0

在白色空間之間聽和ip地址如何找到匹配表達?聽(空格)12.0.0.0:80,一個或兩個空格 –

+0

你想用你的代碼實現什麼? – Ruben

回答

0

我希望我正確地理解這一點。

您試圖用某個東西替換一個IP地址和端口,並且希望空格作爲開始和結束標記。

由於我不知道你想要什麼,我會簡單地解釋一些基本規則:

\d{1,3} 

這是相同的話說:1 - 3位數。
示例將是:123或789或999

。你的正則表達式中的將匹配任何東西!你應該逃避它。

This: \ 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 

如果你想如果你想打印一個匹配的值與端口

"Listen *(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):\d{1,5}" 

相匹配的IP地址再次,這通常是\ 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 

將取代聽127.0.0.1:8080聽=

type 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 

會(可能)取代聽127.0.0.1:8080聽= 127.0.0.1

希望有所幫助。

相關問題