2014-01-08 62 views
22

我對正則表達式有點新,並且正在尋找一些通配符字符串(如* 8768,* 9875,* 2353)的多個行/ instaces。正則表達式來搜索多個字符串(Textpad)

我想拉這些(在一個文件中)的所有實例,而不是單獨搜索它們。

任何幫助,非常感謝。我試過的東西,如* 8768 * 9875等等

+0

使用1場我都與一般的正則表達式沒有問題,但在這裏我並不完全確定你想要什麼。你能舉一個數據輸入的例子,你的期望輸出是什麼? – ccjmne

+0

我只是試圖從包含上述#的子字符串的.DAT(或.txt)文件中拉出所有文本行。我試圖做的: select * from table where(* 8678,* 9875) – gfuller40

回答

30

如果我明白你問什麼,這是一個正則表達式是這樣的:

^(8768|9875|2353) 

這三組數字相匹配只在行首的字符串。

+0

我使用一個帶有數字1-10的txt文件進行測試(全部在它們的每一行上這是行不通的。是否有一個編輯會抓住一行的開頭? – gfuller40

+0

@ gfuller40:你是什麼意思的「抓住行的開頭」? – wallyk

+0

你指定的行尾只是像一個正確的子字符串函數,這些#是每行的第一個字符 – gfuller40

20

要獲得包含文本的線條876898752353,使用方法:

^.*(8768|9875|2353).*$ 

這意味着什麼:

^      from the beginning of the line 
.*      get any character except \n (0 or more times) 
(8768|9875|2353)  if the line contains the string '8768' OR '9875' OR '2353' 
.*      and get any character except \n (0 or more times) 
$      until the end of the line 

如果你想要的文字*字符,你會必須逃脫它:

^.*(\*8768|\*9875|\*2353).*$ 
+0

這似乎也不起作用。我正在用一個1-10號文本文件(在單獨的行上)進行測試,並且我沒有使用^。(* 01 | 04 | 08)獲得任何出現。* $ – gfuller40

+2

'^。(* 01 | 04 | 08)。* $'是錯誤的。在我的答案中使用一個,或者改變'*'的位置(將其從'()'s中移出),如下所示:'^。*(01 | 04 | 08)。* $'。 – acdcjunior

+0

好的我正在使用我的原始示例與實際的4 digin#在單獨的行上。我仍然沒有發生任何事情。非常感謝你的解釋,但是,這是非常有用的,我只是希望我能弄明白這一點。我正在使用^。*(8768 | 9875 | 2353)。* $ – gfuller40

0

我建議更好的解決方案。我的任務:在每條記錄前添加http://google.com/路徑並導入多個字段。

CSV單個字段值(所有圖像只是文件名,由獨立|):
「123.jpg | 345.jpg | 567.jpg」

篡改1插件:查找和替換REGEXP: 模式:/([a-zA-Z0-9]*)./ 更換:http://google.com/ $ 1

篡改第二插件:爆炸 設置:通過爆炸|

在這種情況下,你不需要任何additinal字段映射,可在CSV

相關問題