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函数,

我使用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函数,不确定代码的作用,但请使用给定的示例:

进口稀土 导入系统 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