标题: 关于sed替换命令的疑问。
[打印本页]
作者: zsc37201
时间: 2010-8-2 16:56
标题: 关于sed替换命令的疑问。
@echo off
echo I love sed. |sed "s#[A-Za-z]*#&,#g"
预期目的是在每个单词后加上逗号。
即I, love, sed,.
可是实际结果是:
I, love, sed,., ,
它在.和空格后也加上了逗号,不知是为什么?
.和空格按说不匹配[A-Za-z]*呀?
作者: fsfss
时间: 2010-8-2 17:15
echo I love sed. |sed "s#[A-Za-z]\{1,\}#&,#g"
作者: zsc37201
时间: 2010-8-2 19:20
谢谢你的回答,原来是*号是零到多个,忘记了。
我又有一个新的问题,就大侠回答一下,为什么最后句点后的空格匹配,而I、love、sed间的那两个空格为什么不匹配。
`a*b'
Matches zero or more `a's followed by a single `b'. For example, `b' or `aaaaab'.
上面好理解
但是,a*(只有a*,后面没有b)当匹配0个时,该怎么理解,还请不吝赐教。
麻烦大侠回答一下。
作者: fsfss
时间: 2010-8-2 20:21
这个问题确实令人费解,同等高人回答,按楼上的思路试了下JS和AHK中的正则,结果如下:
JS:
I,,,,,, love,,,,,, ,,, sed,,,,,,.,,, ,,,
AHK:
I,, love,, , sed,,., ,
SED:
I, love, sed,., ,
[
Last edited by fsfss on 2010-8-2 at 20:25 ]