其中###是一个三位或四位数后跟一个空格,我想用相同的数字替换它后跟一个空格和一个句号。
我正在使用正则表达式搜索&在Open Office中替换,我试过
"[0-9][0-9][0-9] "
找到了我正在寻找的数字
替换为
$&
或
"[0-9][0-9][0-9]. "
既没有工作
答案 0 :(得分: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.
答案 1 :(得分:0)
这似乎适用于OpenOffice 3.3:
搜索:([^0-9][0-9]{3,4})
(带尾随空格)
替换:$1.
(带尾随空格)
不幸的是,它与文本开头的3位或4位数字不匹配。