-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.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.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> .

置換に役立つ正規表現を教えてもらえますか?

実際の正規表現:

(pos#long>\s"\d)

キャッチするだけpos#long> "1

どうもありがとう

4

2 に答える 2

1

さて、置換したい行に一致させるために、必要な正規表現は実際にはあなたが持っているものより少し複雑です: (.+wgs84_pos#(?:long|lat).+) \.. これにより、文字列内の既存のテキストが一致してキャプチャされます。

Perl では、置換コードは次のようになります (残りの Perl スクリプトはお任せします)。

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

これが行うことは、最初の行全体から最後のピリオドを除いたものをキャプチャし、ピリオドを追加する前に追加のスニペットと共に新しい行にダンプすることです。

于 2016-07-23T13:25:13.407 に答える