Python中带字符串的正则表达式

Python中带字符串的正则表达式,python,regex,string,Python,Regex,String,我正在尝试创建一个表达式,它将为字符串提供yes输出,为6,7,8输出,为9和10提供no输出。 任何建议都将不胜感激 #The regular expression is ' ^<[^<>]*>$ ' print ( 'The regular expression used for 5 strings was "^<[^<>]*>$"' ) string6 = '<an xml tag>' string7 =

我正在尝试创建一个表达式,它将为字符串提供yes输出,为6,7,8输出,为9和10提供no输出。 任何建议都将不胜感激

#The regular expression is ' ^<[^<>]*>$ '
    print ( 'The regular expression used for 5 strings was "^<[^<>]*>$"' )
    string6 = '<an xml tag>'
    string7 =  '<an xml tag>, </closetag>'
    string8 = '<with attribute="77">'
    string9 = '<opentag><closetag>'
    string10 = '</closetag>'

    if re.search( r'^<[^<>]*,>$',string6 ) :
        print( "yes" )
    else:
        print("no")
    if re.search( r'^<[^<>]*,>$',string7 ) :
        print( "yes" )
    else:
        print("no")

    if re.search(r'^<[^<>]*>$',string8):
        print("yes")

    else:
        print("no")

    if re.search(r'^<[^<>]*>$',string9):
        print("yes")

    else:
        print("no")

    if re.search(r'^<[^<>]*>$',string10):
        print("yes")

    else:
        print("no")
#正则表达式是“^$”
print('用于5个字符串的正则表达式为“^$”)
字符串6=''
字符串7=','
字符串8=''
字符串9=''
字符串10=''
如果重新搜索(r'^$',字符串6):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'^$',字符串7):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'^$',字符串8):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'^$',字符串9):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'^$',字符串10):
打印(“是”)
其他:
打印(“否”)
结果是: 对 不 对 不 对

我正试图得到: 对 对 对 不

如果您只需要匹配那些特定的字符串,只需交替使用带有文本的正则表达式即可

regex = r'^(?:<an xml tag>|<an xml tag>, </closetag>|<with attribute="77">)$';
for s in [string6, string7, string8, string9, string10]:
    if (re.search(regex, s)):
        print("yes")
    else:
        print("no")
regex=r'^(?:|,|)$;
对于[string6、string7、string8、string9、string10]中的s:
如果(重新搜索(regex,s)):
打印(“是”)
其他:
打印(“否”)

从这个问题上还不清楚可以使用什么更通用的模式。

如果只需要匹配那些特定的字符串,只需在替换中使用带有文本的正则表达式即可

regex = r'^(?:<an xml tag>|<an xml tag>, </closetag>|<with attribute="77">)$';
for s in [string6, string7, string8, string9, string10]:
    if (re.search(regex, s)):
        print("yes")
    else:
        print("no")
regex=r'^(?:|,|)$;
对于[string6、string7、string8、string9、string10]中的s:
如果(重新搜索(regex,s)):
打印(“是”)
其他:
打印(“否”)

这个问题还不清楚可以使用哪种更通用的模式。

前3个字符串中至少有一个空格字符,后2个没有。如果使用仅为单个空格字符的正则表达式,
,它将匹配前三个字符,而不是后两个字符

string6 = '<an xml tag>'
string7 =  '<an xml tag>, </closetag>'
string8 = '<with attribute="77">'
string9 = '<opentag><closetag>'
string10 = '</closetag>'

if re.search( r' ',string6 ) :
    print( "yes" )
else:
    print("no")
if re.search( r' ',string7 ) :
    print( "yes" )
else:
    print("no")

if re.search(r' ',string8):
    print("yes")

else:
    print("no")

if re.search(r' ',string9):
    print("yes")

else:
    print("no")

if re.search(r' ',string10):
    print("yes")

else:
    print("no")
string6=''
字符串7=','
字符串8=''
字符串9=''
字符串10=''
如果重新搜索(r'',字符串6):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',字符串7):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',字符串8):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',string9):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',字符串10):
打印(“是”)
其他:
打印(“否”)

前3个字符串中至少有一个空格字符,后2个字符串中没有空格字符。如果使用仅为单个空格字符的正则表达式,
,它将匹配前三个字符,而不是后两个字符

string6 = '<an xml tag>'
string7 =  '<an xml tag>, </closetag>'
string8 = '<with attribute="77">'
string9 = '<opentag><closetag>'
string10 = '</closetag>'

if re.search( r' ',string6 ) :
    print( "yes" )
else:
    print("no")
if re.search( r' ',string7 ) :
    print( "yes" )
else:
    print("no")

if re.search(r' ',string8):
    print("yes")

else:
    print("no")

if re.search(r' ',string9):
    print("yes")

else:
    print("no")

if re.search(r' ',string10):
    print("yes")

else:
    print("no")
string6=''
字符串7=','
字符串8=''
字符串9=''
字符串10=''
如果重新搜索(r'',字符串6):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',字符串7):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',字符串8):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',string9):
打印(“是”)
其他:
打印(“否”)
如果重新搜索(r'',字符串10):
打印(“是”)
其他:
打印(“否”)

请不要使用正则表达式解析XML/HTML:re.search(r'[xw]',testedString)这些“是”和“否”结果是否有意义?请尝试使用
beautifulsoup
代替。你的运气可能会好得多!所以正则表达式本身可以是任何东西?那么@Ruzihm的建议对你有用吗?或者(深入挖掘)除了“匹配”之外,这些正则表达式还有其他用途吗?请不要用正则表达式解析XML/HTML:重新搜索(r'[xw]',testedString)这些“是”和“否”结果有什么意义吗?试着改用
beautifulsou
。你的运气可能会好得多!所以正则表达式本身可以是任何东西?那么@Ruzihm的建议对你有用吗?或者(深入挖掘)除了“匹配”之外,这些正则表达式还有其他用途吗?除非OP展开问题,否则我们不妨将其归结为
print(“yes-yes-no”)
除非OP展开问题,否则我们不妨将其归结为
print(“yes-yes-no”)