【问题标题】:Regular Expression to Find/Replace in a Fix Length File在固定长度文件中查找/替换的正则表达式
【发布时间】:2009-04-08 18:23:27
【问题描述】:
所以我有这个固定长度行的大文件。我想在字符行位置上进行查找和替换。
例子:
xxxxxxx 010109 xxxxxx xxxxx
xxxxxxx 010309 xxxxxx xxxxx
xxxxxxx 021506 xxxxxx xxxxx
xxxxxxx 041187 xxxxxx xxxxx
所以在这种情况下,我希望找到从位置 13 到位置 18 的任何值,并将其替换为 010107。
任何人都可以帮我解决如何为此制定正则表达式吗?
非常感谢。
【问题讨论】:
标签:
regex
notepad++
replace
【解决方案1】:
已编辑:经过测试,Notepad++ 不支持定义确切字符数的 {n} 方法
这行得通,在您的数据上进行了测试:
查找:
^(............)......
替换:
\1010107
【解决方案2】:
试试这个搜索模式:
^(.{12})\d{6}
这是替换表达式:
\1010107
【解决方案3】:
s/^(?:.{12})(.{6})(?:.*)$/NNNNNN/
将 NNNNNN 替换为所需的数字
【解决方案4】:
类似这样的:
sed 's/^\(.\{12\}\).\{6\}\(.*\)$/\1010107\2/'
应该做的伎俩(转义以供命令行使用)
【解决方案5】:
只是为了记录,您不需要这样的正则表达式。一个简单的拆分,或者某种解包函数,就可以了。