2012-09-07 37 views
0

前提條件:正則表達式 - 新線串之間尋找

[numbers] 
[vip]111,222[vip] 
[standard]333[standard] 
[numbers] 

我想要什麼: 找到[數字] 問題之間的一切: 當這段文字是在一條線上的解決方法很簡單

(?<=\[numbers\])(.*?)(?=\[numbers\]) 

但是有可能在預先條件下搜索新行是什麼時候?

+6

從'[正則表達式]'標籤說明:「「請包括一個標籤指定編程語言或工具,你正在使用,加上這個標籤。」' –

回答

0

在大多數正則表達式中,點(。)代表任何行。

可以通過使用表達式爲 「任何」 跨結束線掃描,例如:

(?< = \ [數\])([\ d \ d] *?)( ?= \ [數字\])

爲[\ d \ d]表示「任何一個數字,或任何不是一個數字」

+0

當然...現在我發現我缺乏關於點的大意...非常感謝 – Qba

0

你並不真正需要的正則表達式出現問題,用awk就足夠設置記錄分隔符:

awk 1 RS='\\[numbers\\]\n' ORS='' 

輸出:

[vip]111,222[vip] 
[standard]333[standard]