2010-04-13 84 views
2

任何人都可以提供爲記事本的下方搜索一個正則表達式++和替換(轉換)正則表達式在記事本++

ADD (PRIMARY KEY (xxx)) ; 

ADD PRIMARY KEY (xxx) ; 

基本上除去()圍繞主鍵的表達。語句中的值xxx不同。

如果不是notepad ++,我也可以嘗試vim或任何shell腳本的正則表達式。

非常感謝。 Babu。

回答

4

搜索:

ADD \(PRIMARY KEY \((.+)\) \) ; 

替換:

ADD PRIMARY KEY (\1) ; 
+0

非常感謝你..它在很小的變化下工作得很好..要搜索的模式是 ADD \\(PRIMARY KEY \\((。+)\\)\\); 我相信你知道的更好,但我沒有看到他們的手冊中使用'd'(http://notepad-plus.sourceforge.net/uk/regExpList.php)。再次感謝您的幫助。 – bsr 2010-04-13 22:16:02

-1

你不需要一個reg-ex。搜索'('並用空格替換。然後搜索一個') '並替換爲無。

那就是'([space]'')[space]'

+0

這是'([space]'和')[空間]' – Michaelkay 2010-04-13 18:58:07

+0

感謝您的快速回復...抱歉,我沒有提及..還有其他文字包含(,)等, t要干擾.. – bsr 2010-04-13 19:02:38

+0

@bsreekanth然後正則表達式可能不會幫助你。正則表達式不理解嵌套。它不能說明開合的括號是否屬於一起。 – tloflin 2010-04-13 19:06:18

0

在Perl中假定你讀了線到$線

$line =~ s/([^(]+)\((.*)\)/$1$2/ 

會做這項工作。這也節省了您從切斷的粘貼ADD PRIMARY KEY ...(停車位權數。正則表達式在這裏做的是什麼

一)匹配所有字符都第一(和它捕捉到$ 1

b)匹配(

c)匹配所有的字符,但不包括最後)並將其捕獲到$ 2。

d)匹配尾隨)

E)替換原始字符串$ 1 $ 2。