ここで ### は 3 桁または 4 桁の数字の後にスペースが続き、同じ数字の後にスペースとピリオドが続くものに置き換えたいと考えています。
Open Officeで正規表現の検索と置換を使用していますが、試しました
"[0-9][0-9][0-9] "
私が探していた数字を見つけた
と置換する
$&
また
"[0-9][0-9][0-9]. "
どちらも機能しませんでした
ここで ### は 3 桁または 4 桁の数字の後にスペースが続き、同じ数字の後にスペースとピリオドが続くものに置き換えたいと考えています。
Open Officeで正規表現の検索と置換を使用していますが、試しました
"[0-9][0-9][0-9] "
私が探していた数字を見つけた
と置換する
$&
また
"[0-9][0-9][0-9]. "
どちらも機能しませんでした
ほとんどの正規表現の実装では、"(\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.
これは OpenOffice 3.3 で動作するようです:
検索: ([^0-9][0-9]{3,4})
(末尾にスペースあり)
置換: $1.
(末尾のスペースあり)
残念ながら、テキストの先頭にある 3 桁または 4 桁の数字とは一致しません。