您是否可以使用脚本中的值来动态告知正则表达式如何操作?
例如:
%:: %.c
@echo making $@
@touch $@
我一直在试图让分组工作时遇到问题
我试图在文本文件中找到最常见的正则表达式重复次数,以便在文件中查找表类型数据。 我有想法制作一个像这样的正则表达式:
base_pattern = r'\s*(([\d.\w]+)[ \h]+)'
n_rep = random.randint(1, 9)
new_pattern = base_pattern + '{n_rep}'
line_matches = re.findall(new_pattern, some_text)
答案 0 :(得分:2)
你的模式只是一个字符串。因此,您只需将数字转换为字符串即可。您可以使用format
(例如https://infohost.nmt.edu/tcc/help/pubs/python/web/new-str-format.html)来执行此操作:
base_pattern = r'\s*(([\d.\w]+)[ \h]+)'
n_rep = random.randint(1, 9)
new_pattern = base_pattern + '{{{0}}}'.format(n_rep)
print new_pattern ## '\\s*(([\\d.\\w]+)[ \\h]+){6}'
请注意,两个第一个和最后两个花括号在新模式中创建花括号,而{0}
正在被数字n_rep
答案 1 :(得分:2)
你需要使用变量的值,而不是带有变量名称的字符串文字,例如:
new_pattern = base_pattern + '{' + n_cols + '}'