在下面的例子-这是一个固定长度的文件,我希望找到任何行,以"10“开头,并有一个"M”9位置后。当这些类型的记录被找到时,我只需要用单词Test替换名字,这是35个位置后发现的。
10123456789M 00002345678 Tom Jones 123 Main St
10123456789A 00002345678 Debra Sally 123 Main St
20123456789M 00002345678 Michael Sampson 123 Main St
10123456789M 00002345678 Jonathan Smith 123 Main St如前所述,我可以通过以下regex查找和替换实现这一点
^(10(?:.{9}M).{35})(.*?)
(\1)TEST 我遇到的问题是,它是一个固定长度的文件,使用上面的文件会搞乱以下地址数据的起始位置。以下是我的研究结果。是否有一种方法可以使用Notepad++中的Regex查找和替换固定长度文件中的可变长度值?
10123456789M 00002345678 TEST Jones 123 Main St
10123456789A 00002345678 Debra Sally 123 Main St
20123456789M 00002345678 Michael Sampson 123 Main St
10123456789M 00002345678 TEST Smith 123 Main St发布于 2020-10-02 14:21:10
Regex不太适合这个确切的用途。我能想到的最接近你所能使用的是:
(^10.{9}M.{35}).{5}
\1TEST_(用空格代替_)
要获得

不幸的是,这会把名字弄糟。本质上,您捕获所有的名字到\1,而不是捕获接下来的5个什么。然后用捕获的+ TEST + Space:\1TEST替换所有
10123456789M 00002345678 TEST ones 123 Main St
10123456789A 00002345678 Debra Sally 123 Main St
20123456789M 00002345678 Michael Sampson 123 Main St
10123456789M 00002345678 TEST han Smith 123 Main Sthttps://stackoverflow.com/questions/64172775
复制相似问题