【发布时间】:2015-02-03 18:31:46
【问题描述】:
我正在尝试使用正则表达式将变量 (x) 设置为文本文件中的字符串。
在我正在搜索的文件中存在几行代码,并且总是其中一行是票号 WS########。看起来像这样
~文件~
out.test
WS12345678
something here
pineapple joe
etc.
~代码~
def foundSomething(m):
console.write('{0}\n'.format(m.group(0), str(m.span(0))))
editor1.research('([W][S]\d\d\d\d\d\d\d\d)', foundSomething)
通过我的研究,我设法让上述代码正常工作,当文件中存在相应的文本时,它会将 WS12345678 输出到控制台。
如何将 WS12345678 放入变量中,以便可以使用相应的编号保存该文件?
编辑 把它放在伪代码中,我正在尝试
x = find "WS\d\d\d\d\d\d\d\d"
file.save(x)
解决方案 感谢@Kasra AD 的解决方案。我能够创建一个解决方法。
import re #import regular expression
test = editor1.getText() #variable = all the text in an editor window
savefilename = re.search(r"WS\d{8}",test).group(0) #setting the savefile variable
console.write(savefilename) #checking the variable
要使用 PythonScript 插件在 notepad++ 中的文件中查找特定字符串,您可以将 1 个编辑器中的所有内容提取到字符串中,然后对其运行正则表达式搜索。
【问题讨论】:
-
为什么当你的文件中有
WS12345678时,结果是WS99999999,你的预期结果是什么? -
对不起,我使用的是正则表达式,所以名称无关紧要,只要它以“WS”开头并且后面有 8 个数字。
-
所以你想提取它,想做什么?
标签: python regex notepad++ scintilla