Python 如何在re.findall中使用字符串变量?
我使用Python通过文本文件查找以指定字母开头和结尾的单词。但是,我在re.findall命令中使用字符串变量时遇到了一些问题。你能给我一些建议吗Python 如何在re.findall中使用字符串变量?,python,regex,Python,Regex,我使用Python通过文本文件查找以指定字母开头和结尾的单词。但是,我在re.findall命令中使用字符串变量时遇到了一些问题。你能给我一些建议吗 import re import sys f = open(sys.argv[1]+'.txt', "r") data = f.read() re.findall(r'\b'+str(sys.argv[2])'\w+', data) 请展开此代码以查找以定义的字母开头和结尾的单词,好吗?您要查找的是re.compile函数,
import re
import sys
f = open(sys.argv[1]+'.txt', "r")
data = f.read()
re.findall(r'\b'+str(sys.argv[2])'\w+', data)
请展开此代码以查找以定义的字母开头和结尾的单词,好吗?您要查找的是re.compile函数,不确定代码的作用,但请使用给定的示例: 进口稀土 导入系统 f=opensys.argv[1]+'.txt',r 数据=f.read regex=re.compiler\b+strsys.argv[2]+r\w+ 关于findallregex,数据 如果要获取以指定字母开头和结尾的单词,可以使用以下内容: 进口稀土 导入系统 f=opensys.argv[1]+'.txt',r 数据=f.read 以“a”开头,以“w”结尾 regex=re.compile^a+strsys.argv[2]+w$ 关于findallregex,数据 argv[1]是一个文件名 argv[2]是单词的起始字母 argv[3]是单词的结尾字母
你可以用单词的开头和结尾字母来搜索一个单词检查最后一个字母是否是w,不是w$吗?我刚刚用了op的例子。是的,我可以看到。但是,检查最后一个字母是否为w不是w$吗?好的,我已经对它进行了升级,但可能会将其作为一个建议进行编辑:糟糕,当您将\b作为字符串写入时,python本身会转义b,为了告诉编译函数这确实是\b,您可以转义反斜杠\\b或将其作为正则表达式r\b而不是字符串写入。我编辑了答案,现在应该可以了。
import re
import sys
thefile = open(sys.argv[1]+".txt", "r")
for line in thefile:
if re.match(sys.argv[2]+"(.*)"+sys.argv[3]+"(.*)(.*)", line):
print line