在Python中,如何为字符串结尾进行模式测试。因此,只要是这样的:以Python结尾的字符串模式测试
"name.txt"=="*.txt"
我试图用重新库:
pattern = re.compile("*.txt")
pattern.match("somename.txt")
但显而易见似乎不起作用。有人可以粘贴他的代码?请不要链接到re libray参考。今天我搞砸了。感谢你们!
在Python中,如何为字符串结尾进行模式测试。因此,只要是这样的:以Python结尾的字符串模式测试
"name.txt"=="*.txt"
我试图用重新库:
pattern = re.compile("*.txt")
pattern.match("somename.txt")
但显而易见似乎不起作用。有人可以粘贴他的代码?请不要链接到re libray参考。今天我搞砸了。感谢你们!
您可以使用endswith
来检查一个字符串是否以指定文本结尾。
filename = "name.txt"
pattern = ".txt"
print filename.endswith(pattern)
你可以做一个简单的测试,如:
>>> file="name.txt"
>>> pattern=".txt"
>>> pattern in file
True
只为你的学习,如果你想要去了解使用正则表达式,你可以做到以下几点,该模式搜索搜索文件扩展名在提供的字符串的末尾(\ Z指定匹配的结尾):
import re
pattern = re.compile(".txt\Z")
if pattern.search('name.txt'):
print "Match"
else:
print "No match"
我在这里学到的东西是,在if函数中评估True的模式,如果直接进行评估,它会勉强打印奇怪的输出。评估pattern.search('name.txt')直接给出: <_sre.SRE_Match对象; span =(4,8),match ='.txt'> – crx
'“name.txt”.endswith('。txt')'为简单后缀。 ''* .txt''无效,''*''是重复操作符。和''。'匹配任何字符。锚定是你在行尾的朋友:'r'。* \。txt $''。但是,只需使用'fnmatch()'。 – dhke
这不是一个正则表达式模式。您正在寻找的模块是['fnmatch'](https://docs.python.org/3.6/library/fnmatch.html)。 –
@dhke以'*'开头的模式根本无效。 –