2012-07-10 45 views
2

我在openoffice中有一個大約3000行的數據集,每個集合可以包含(XXXv)pandanthesis內的數據,其中XXX可以是任何3位數字(通常爲110,220,115,120)正則表達式在括號中提取數據

我需要簡單地忽略該字段中的所有內容,並只查找/替換爲僅值。

其他paranthesis可能存在於數據中。大多數數據都是HTML格式的,目前在csv文件中。某些字段也可能不包含值。

EX: ITEM NUMBER 38 (115v) - (SKU) 
(simplified, many will be 100-1000 characters in length, in html) 

= IF語句也可能工作?

回答

1

乍一看,正則表達式似乎是最好的選擇。正則表達式應該類似.*\(([0-9][0-9][0-9])v\).*。被捕獲的組將是您正在查找的值。

+0

。* \(([0-9] [0-9] [0 -9])v \)。* 第三個值之後是否需要第二個palenthesis?我對正則表達式不夠了解,但只是看它有點建議? 。* \(([0-9] [0-9] [0-9]))v \)。* 另外,我會在「替換」字段? 編輯:它不需要第二個palenthesis,沒有看到1在結尾:) – NRGdallas 2012-07-10 18:02:49

+0

圍繞數字的括號捕捉它。轉義的括號與字符串中的實際字符匹配,將XXX從「...(XXXv)...」中拔出。您可以用第一個捕獲的組'\ 1'替換。 – 2012-07-10 18:06:55

+0

替換爲\ 1似乎不工作,它只是將整個字符串替換爲值「\ 1」 http://screencast.com/t/HZEV2iLC1Uk – NRGdallas 2012-07-10 18:09:46

0

使用本正則表達式替換(?<=\()\d{3}(?=v\)) 如果你的正則表達式引擎不知道回顧後,使用=\(\d{3}v\)與替換(value V)

+0

我可能會丟失一些東西,但如果字符串是「項目編號213(124v)(121)」,會發生什麼? – 2012-07-10 18:05:07

+0

將被選中只有3位數,「項目編號'213'('124'v)('121')」我標記匹配 – 2012-07-10 18:07:29

+0

但是OP只希望124. – 2012-07-10 18:18:11