re.search()字符串末尾的精确比较

时间:2014-05-28 16:52:35

标签: python regex

尝试对字符串结尾进行精确的字符串比较:

re.search(r'%s' % name1, name2, re.IGNORECASE)

因此,如果name1 = "local/foo"name2= "foo"语句将返回true。

但是,上述测试对name1 = "foo"name2 = "foo-bar"返回true 我怎样才能匹配两端?

3 个答案:

答案 0 :(得分:3)

使用$将搜索锚定到最后:

re.search(r'%s$' % name1, name2, re.IGNORECASE)

可能想要使用re.escape()来确保name1中的元字符不被解释为正则表达式模式:

re.search(r'%s$' % re.escape(name1), name2, re.IGNORECASE)

答案 1 :(得分:2)

另一种选择:

name1.lower().endswith(name2.lower())

答案 2 :(得分:1)

Python 3.4上还有re.fullmatch。这比\Z使用$,因此有更好的默认值。