2015-06-09 50 views
0

實施例:我要搜索和替換下面匹配和替換不同組的數量

51h 04h 02h  
CAh    

,將獲得:

cmd 51h; addr 04h; data 02h; 
cmd CAh; 

這將匹配的第一行

^([0-9A-F]{2}h)\t([0-9A-F]{2}h)\t([0-9A-F]{2}h) 

我可以用

cmd $1; addr $2; data $3; 

但當然第二行不匹配。無論如何,用一個正則表達式覆蓋兩條線?我使用正則表達式從崇高文本2

+0

它不是很難匹配,但是替換端需要代碼邏輯,就像回調,或者你可以使用2個表達式,每次重新掃描輸入。 – sln

回答

1

您可以使用以下方法:

^([0-9A-F]{2}h)\s+([0-9A-F]{2}h)\s+([0-9A-F]{2}h)\s+(\w+) 
               ↑↑↑↑↑↑↑↑ 

DEMO

邏輯:由於\s比賽的水平和垂直空間,它會捕捉下一個字組在以下行

+0

謝謝。但這不是我想要的。我想用特定的字符串替換每行的第一個匹配,並且(可選)用另一個字符串替換第二個匹配。 – Dong

+0

@Dong你能用一個例子更新你的問題嗎? –