Python re.search()字符串末尾的精确比较
正在尝试对字符串结尾执行精确的字符串比较:Python re.search()字符串末尾的精确比较,python,regex,Python,Regex,正在尝试对字符串结尾执行精确的字符串比较: re.search(r'%s' % name1, name2, re.IGNORECASE) 因此,如果name1=“local/foo”和name2=“foo”语句将返回true 但是,对于name1=“foo”和name2=“foo bar” 如何仅匹配结尾?使用$将搜索定位到结尾: re.search(r'%s$' % name1, name2, re.IGNORECASE) 您可能希望使用re.escape()来确保name1中的元字符不会
re.search(r'%s' % name1, name2, re.IGNORECASE)
因此,如果name1=“local/foo”
和name2=“foo”
语句将返回true
但是,对于name1=“foo”
和name2=“foo bar”
如何仅匹配结尾?使用
$
将搜索定位到结尾:
re.search(r'%s$' % name1, name2, re.IGNORECASE)
您可能希望使用re.escape()
来确保name1
中的元字符不会被解释为正则表达式模式:
re.search(r'%s$' % re.escape(name1), name2, re.IGNORECASE)
使用
$
将搜索定位到结尾:
re.search(r'%s$' % name1, name2, re.IGNORECASE)
您可能希望使用re.escape()
来确保name1
中的元字符不会被解释为正则表达式模式:
re.search(r'%s$' % re.escape(name1), name2, re.IGNORECASE)
另一种选择:
name1.lower().endswith(name2.lower())
另一种选择:
name1.lower().endswith(name2.lower())
Python 3.4上还有
re.fullmatch
。它使用\Z
而不是$
,因此有一个更好的默认值。在Python 3.4上还有re.fullmatch
。这将使用\Z
而不是$
,因此有一个更好的默认值。@klashxx:取决于输入,但是是的,当您的输入可以包含多行并且您确实希望匹配整个输入字符串的结尾时,则\Z
是更好的选择。@klashxx:取决于输入,但是是的,如果您的输入可以包含多行,并且确实希望匹配整个输入字符串的结尾,则\Z
是更好的选择。muuuch优于re。muuuch优于re。