0

ここで ### は 3 桁または 4 桁の数字の後にスペースが続き、同じ数字の後にスペースとピリオドが続くものに置き換えたいと考えています。

Open Officeで正規表現の検索と置換を使用していますが、試しました

"[0-9][0-9][0-9] "

私が探していた数字を見つけた

と置換する

$&

また

"[0-9][0-9][0-9]. "

どちらも機能しませんでした

4

2 に答える 2

1

ほとんどの正規表現の実装では、"(\D\d{3,4})" は、数字以外の接頭辞が付いた 3 桁または 4 桁の数字を選択します (そうしないと、12345 の中に 2345 が見つかります)。このように ">1234 <" で ">1234 " を見つけ、それを $1 または \1 に入れます。そう:

  s/(\D\d{3,4}) /\1. /g

それ以外の場合は、方言に応じて、\D の代わりに単語境界、\< または \b または < を使用できます。

編集: \d がサポートされていない場合、(明らかに) 私のコマンド ライン sed のように、反対の誓いを立てることができたとしても、[0-9] を使用して \d を置き換えます。

 sed -e 's/\([^0-9][0-9]\{3,4\}\) /\1. /g'

テスト:

 $ echo "This is 12345 and 1234 and 123 and 12 and 1. 123. 1234." \
   | sed -e 's/\([^0-9][0-9]\{3,4\}\) /\1. /g'

結果:

 This is 12345 and 1234. and 123. and 12 and 1. 123. 1234.
于 2012-07-07T14:26:04.863 に答える
0

これは OpenOffice 3.3 で動作するようです:

検索: ([^0-9][0-9]{3,4})(末尾にスペースあり)

置換: $1.(末尾のスペースあり)

残念ながら、テキストの先頭にある 3 桁または 4 桁の数字とは一致しません。

于 2012-07-07T19:16:54.013 に答える