正则表达式模式中的Python字符串变量本身
是否可以在正则表达式模式中包含字符串变量本身正则表达式模式中的Python字符串变量本身,python,regex,string,Python,Regex,String,是否可以在正则表达式模式中包含字符串变量本身 text="Sample text is" st="text" r=re.findall("[A-Z]+[st]+",text) print(r[:]) ResOn是我需要循环中的正则表达式模式,所以st字符串变量将不会固定,并且会发生变化,所以我不能将正则表达式模式写成“文本”。还是不可能?谢谢 您可以构造正则表达式,如下所示 pattern = re.compile(r"[A-Z]+({})+".format(st)) re.findall(p
text="Sample text is"
st="text"
r=re.findall("[A-Z]+[st]+",text)
print(r[:])
ResOn是我需要循环中的正则表达式模式,所以st字符串变量将不会固定,并且会发生变化,所以我不能将正则表达式模式写成“文本”。还是不可能?谢谢 您可以构造正则表达式,如下所示
pattern = re.compile(r"[A-Z]+({})+".format(st))
re.findall(pattern, text)
print pattern.pattern
if st in text:
您可以检查创建的模式,如下所示
pattern = re.compile(r"[A-Z]+({})+".format(st))
re.findall(pattern, text)
print pattern.pattern
if st in text:
在上述表达式中,st
中的值将替换为{}
。你可以阅读更多关于它的内容
请注意,我已将[st]
更改为(st)
,因为[st]
将匹配单词st
中的任何字符。如果您想匹配实际单词,那么您可能希望像我所展示的那样对其进行分组
但是,如果您要做的只是检查一个字符串是否存在于另一个字符串中,那么您可以使用in
操作符,如下所示
pattern = re.compile(r"[A-Z]+({})+".format(st))
re.findall(pattern, text)
print pattern.pattern
if st in text:
你为什么不:
>>> text="Sample text is"
>>> st="text"
>>> if st in text:
... print('Success')
只需连接regexp字符串
import re
pattern1 = "[A-Z]"
pattern2 = "text"
pattern = pattern1 + pattern2
text = "Sample Atext is Ztext"
r = re.findall(pattern, text)
print(r[:])
#['Atext', 'Ztext']
请注意,我正在转义文本