python正则表达式重新编译比赛

2024-09-24 04:31:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试匹配(在python中使用regex):

http://images.mymaterials.com/images/steel-images/small/steel/steel800/steel800-2.jpg

在以下字符串中:

^{pr2}$

我的代码是这样的:

temp="http://www.mymaterialssite.com','http://images.mymaterials.com/images/steel-images/small/steel/steel800/steel800-2.jpg','Model Photo'"
dummy=str(re.compile(r'.com'',,''(.*?)'',,''Model Photo').search(str(temp)).group(1))

我不认为“dummy”是正确的&我不确定如何“转义”正则表达式中的单引号和双引号重新编译命令。在

我试着用谷歌搜索这个问题,但找不到任何相关的东西。在

如有任何指导,不胜感激。在

谢谢。在


Tags: 字符串comhttpmodeltempregexdummysmall
3条回答

试试三重引号:

import re
tmp=""".*http://images.mymaterials.com/images/steel-images/small/steel/steel800/steel800-2.jpg.*"""
str="""http://www.mymaterialssite.com\'\,\'http://images.mymaterials.com/images/steel-images/small/steel/steel800/steel800-2.jpg','Model Photo'"""
x=re.match(tmp,str)
if x!=None:
    print x.group()

此外,在模式的开头和结尾处都缺少了.*。我也加了。在

如果使用双引号(在Python中,双引号与单引号的含义相同),则根本不必转义。。(在这种情况下)。您甚至可以使用不带起始r的字符串文本(那里没有任何反斜杠)

re.compile(".com','(.*?)','Model Photo")

在Python中处理包含转义符和引号的字符串的最简单方法是对字符串(""")进行三重双引号,并在其前面加上r。例如:

my_str = r"""This string would "really "suck"" to write if I didn't
 know how to tell Python to parse it as "raw" text with the 'r' character and
 triple " quotes. Especially since I want \n to show up as a backlash followed
 by n. I don't want \0 to be the null byte either!"""

r的意思是“将转义字符作为文本”。三个双引号(""")防止单引号、双引号和双双引号过早结束字符串。在

编辑:我扩展了示例,包括\0和{}。在普通字符串(不是原始字符串)中,\(转义字符)表示下一个字符具有特殊含义。例如,\n表示“换行符”。如果你想在你的字符串中使用\后跟n字符,那么你必须写\\n,或者只使用一个原始字符串,就像我在上面的例子中所展示的那样。在

您还可以在下面的Python文档中阅读字符串文本:

相关问题 更多 >