在重复表达式Python中使用字符串

时间:2018-02-14 04:08:59

标签: python regex string

我正在尝试在正则表达式表达式中使用字符串。例如:

import re
def foo(text, pattern):
    pattern = re.compile(r'Get pattern some how', re.I)
    find = pattern.findall(text)
    ans = ' '.join(i for i in find).lower()
    return ans
text = input('Text:')
pattern = input('Pattern:')
foo(text, pattern)
ans = foo(text, pattern)
print(ans)

我正在使用python 3.6.4和Mac OS X.我需要的是模式可以根据'模式'而变化。字符串,然后返回,并打印出来。我会使用字符串连接吗?还有其他方法吗?如果您需要任何其他信息,请通过评论与我联系。感谢您考虑这个问题!

1 个答案:

答案 0 :(得分:0)

只需将参数pattern直接放在re.compile()放置正则表达式模式的位置即可。

import re
def foo(text, pattern):
    pat = re.compile(pattern, re.I)
    find = pat.findall(text)
    ans = ' '.join(find).lower()   # <--- `find` is a list already
    return ans
text = input('Text:')
pattern = input('Pattern:')
# foo(text, pattern)     <---- You don't need this line here
ans = foo(text, pattern)
print(ans)

注意我将您的本地变量从pattern更改为pat以避免混淆。我删除了list comprehension,因为findall已经返回list。此外,您第一次调用foo()时毫无意义,因为返回的结果不会分配给任何内容。