MadEdit-Mod对大文件的支持不够完善,在大文件中查找内容可能会出现查找结果不全的情况。建议使用其他软件查找大文件中的内容。
问题
MadEdit-Mod的“查找全部”功能会把查找内容所在行列出来。
如果要复制查找的内容,而查找的内容又刚好在行中间,那复制起来就不太方便了。
下面介绍3种解决方法。
方法1
利用正则表达式,查找时将要查找的内容与无关内容都写上,但是用 () 将它们分成不同的子表达式。在替换时只引用要查找的内容和换行符(\r\n)。
举个例子,复制所有的3位数。
方法2
同样是利用正则表达式。在替换时引用要查找的内容,并在这个内容前后添加换行符,点击“替换全部”后就会把查找的内容单独分成一行。然后再次查找时标记查找内容所在行,最后再复制书签行(标记行)。
下面的例子是提取所有以“a”开头的2个字。
方法3
借助MadEdit-Mod的宏功能,可以把要查找的内容列出来,再复制。
me = MadEdit()
me.BeginDoc()
res = 1
while res != 0:
res = me.FindTextNext("a.", bRegex=True, bCaseSensitive=False, bWholeWord=False, bDotMatchNewline=False, bPanChinese=False)
if res != 0:
RE=me.GetSelText()
print RE
修改了下代码,增加了输入框、计数功能。
me = MadEdit()
me.BeginDoc()
search = InputBox("请输入要搜索的内容", "搜索")
if len(search) == 0:
MsgBox("搜索内容为空", "错误",MadDlgStyle.ICON_ERROR_HAND_STOP | MadDlgStyle.OK)
else:
res = 1
count=0
while res != 0:
res = me.FindTextNext(search, bRegex=True, bCaseSensitive=False, bWholeWord=False, bDotMatchNewline=False, bPanChinese=False)
if res != 0:
RE=me.GetSelText()
print RE
count+=1
MsgBox("找到"+str(count)+"个匹配内容", "计数", MadDlgStyle.OK)
还是提取所有以“a”开头的2个字。