2016-12-06 35 views
1

我目前使用下面的正則表達式來刪除域名併爲服務器列表中的主機創建短名稱。修改正則表達式以添加新功能

(-net|-bck|-adm|\..*)(\..*|$) -> blank 

現在,我想修改它,以便它還可以將任何包含大寫的主機名轉換爲小寫。我目前使用下面的正則表達式來執行

(\w) -> \L$1 

任何想法如何,我可以合併兩個正則表達式作爲一個?

我正在尋找一個正則表達式這將使轉換象下面這樣:

Hostname | New Hostname 
--------- | ------------ 
test1-net | test1 
Test2-adm | test2 
TEST3  | test3 
TEST-prod | test-prod 
Test5-bkp | test5-bkp 
test.nic | test 
Test6-bck | test6 
========================= 

希望上面的例子可以幫助您瞭解我的要求。

+2

什麼工具,你用解釋你的正則表達式? sed?您能否告訴我們您使用的確切命令以及示例輸入/輸出? – Aserre

+0

@Aserre我不確定解釋正則表達式的工具/命令。我將正則表達式代碼放在應用程序的GUI命令部分,並解釋正則表達式。 – Marcos

回答

1

我不確定你使用了什麼工具,但不會幫助只是連接正則表達式?在第一組中

(.*)(-net|-bck|-adm|\..*)(\..*|$) -> \L$1 

一切將小寫,其餘(-net|-bck|-adm|\..*)(\..*|$)將被刪除。

請注意,(\..*|$)作爲.*吃東西並丟棄一切,直到字符串結束。

編輯:如果你要小寫一切,不刪除任何東西,如果第二個正則表達式不匹配,只是使第二正則表達式可選的?,如下:

(.*)((-net|-bck|-adm|\..*)(\..*|$))? -> \L$1 
+0

concatege正則表達式似乎只適用於那些第二個可以匹配的值,否則它不起作用。我想我需要修改我的問題以添加該信息。 – Marcos

+0

如果第二個正則表達式不匹配,你想要做什麼?只是小寫的一切,而不是刪除任何東西? –

+0

是的,這就是我要找的。我也編輯我的問題來添加一些例子。 – Marcos