2013-03-26 72 views
0

我使用應用程序在XML記錄中的自由文本字段中查找特定文本模式。它使用正則表達式來識別模式,然後在XML中對其進行標記。對於一個特定的項目,如果我可以在我必須使用的模式之前添加2個字符27,那麼這將是一個很好的時間保護程序(我正在處理大約1800萬條記錄)。可以將字符添加到字符串作爲正則表達式的一部分(正則表達式)

這可以做到或者我只是要去漫長的路?

+0

您的意思是修改正則表達式爲2個字符,然後27個變量字符,然後您當前的模式?順便說一句,我的心痛在於以XML格式搜索18百萬條記錄。這就是像索引數據庫那樣的東西。 – 2013-03-26 00:33:42

回答

0

不,你不能有一個不存在的正則表達式匹配文本。正則表達式只能返回原始文本的一部分。

但是,如果您將其匹配到組中,則可以使用組名稱獲取有關您匹配內容的額外信息。

+0

那個sux。感謝你的迴應,我認爲這是一個很長的鏡頭。 – 2013-03-26 00:46:13

0

如果您想編輯XML文件,Regex不是正確的工具。相反,使用Python,Perl,Ruby,PHP,Java等現代語言和適當的XML解析器模塊。如果你在Unix系統像貝殼,我建議xmlstarlet

也就是說,如果你想用替代先走,你可以嘗試(在你自己的風險):

sed -i -r 's/987654/27&/g' files*.xml 

(使用只有-i切換隻能修改原地

+0

我需要做的是在正在使用正則表達式找到的數字組的前面加上「27」。例如,在文本中,我可能會找到9876543.我需要添加「27」,以便它變爲279876543. – 2013-03-26 00:41:48

+0

請參閱我編輯的帖子 – 2013-03-26 00:55:11