2016-07-23 265 views
-3

我有一個包含一些數據記錄這樣的文件:正則表達式字符串替換

<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/2003/01/geo/wgs84_pos#long> "10.983007809025084" . 
<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "43.721979606737897" . 
<http://www.mylab.org/mydata/resource/1234502851114AA> <http://purl.org/dc/terms/identifier> "1234502851114AA" . 
<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.mylab.org/mydata/schema#Node> . 
<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.disit.org/km4city/schema#nodeType> "STRING_STRING_STRING" . 

在各該條目我有一個腳本(Java/Python或其他)來代替這樣的線的:

<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/2003/01/geo/wgs84_pos#long> "10.983007809025084"^^<http://www.w3.org/2001/XMLSchema#float> . 
<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "43.721979606737897"^^<http://www.w3.org/2001/XMLSchema#float> . 

你能幫我:

<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/2003/01/geo/wgs84_pos#long> "10.983007809025084" . 
<http://www.mylab.org/mydata/resource/1234502851114AA> <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "43.721979606737897" . 

在號碼的末尾添加^^<http://www.w3.org/2001/XMLSchema#float>與正則表達式,幫助我的替代?

實際的正則表達式:

(pos#long>\s"\d) 

它只捕獲pos#long> "1

謝謝你這麼多

+1

你到目前爲止嘗試過什麼?你在這裏已經足夠長的時間來理解,這不是你放棄你的需求的地方,而是其他人爲你做的工作。 – GhostCat

回答

1

好,以適應所要更換的線,你想要的正則表達式實際上是有點多比你擁有的複雜:(.+wgs84_pos#(?:long|lat).+) \.。這將匹配並捕獲字符串中的現有文本。

在Perl中,你的替換代碼會是這個樣子(我離開Perl腳本起來的其餘部分給你):

$line =~ s/(.+wgs84_pos\#(?:long|lat).+) \./$1^^<http:\/\/www.w3.org\/2001\/XMLSchema#float> ./g 

這樣做有什麼拍攝第一線的全部,減去期末,然後在追加期間之前將它隨同您的附加片段一起轉儲到新行中。

+0

我用你的正則表達式來替換Sublime。這個正則表達式非常完美,非常感謝! – michele

+0

我很樂意提供幫助。 –

1

隨着(>\s"\d*\.{0,1}\d*"\s\.$)你可以找到這兩個數字,如果他們在行的末尾。然後,您可以將^^<http://www.w3.org/2001/XMLSchema#float>附加到該行。

或者,您可以替換搜索(>\s"\d*\.{0,1}\d*"\s\.$)並替換爲$1 ^^<http://www.w3.org/2001/XMLSchema#float>(使用記事本++測試)。