2017-04-18 22 views
-1

在Python中,如何为字符串结尾进行模式测试。因此,只要是这样的:以Python结尾的字符串模式测试

"name.txt"=="*.txt" 

我试图用重新库:

pattern = re.compile("*.txt") 
pattern.match("somename.txt") 

但显而易见似乎不起作用。有人可以粘贴他的代码?请不要链接到re libray参考。今天我搞砸了。感谢你们!

+1

'“name.txt”.endswith('。txt')'为简单后缀。 ''* .txt''无效,''*''是重复操作符。和''。'匹配任何字符。锚定是你在行尾的朋友:'r'。* \。txt $''。但是,只需使用'fnmatch()'。 – dhke

+1

这不是一个正则表达式模式。您正在寻找的模块是['fnmatch'](https://docs.python.org/3.6/library/fnmatch.html)。 –

+0

@dhke以'*'开头的模式根本无效。 –

回答

0

您可以使用endswith来检查一个字符串是否以指定文本结尾。

filename = "name.txt" 
pattern = ".txt" 

print filename.endswith(pattern) 
0

你可以做一个简单的测试,如:

>>> file="name.txt" 
>>> pattern=".txt" 
>>> pattern in file 
True 
1

只为你的学习,如果你想要去了解使用正则表达式,你可以做到以下几点,该模式搜索搜索文件扩展名在提供的字符串的末尾(\ Z指定匹配的结尾):

import re 

pattern = re.compile(".txt\Z") 

if pattern.search('name.txt'): 
    print "Match" 
else: 
    print "No match" 
+0

我在这里学到的东西是,在if函数中评估True的模式,如果直接进行评估,它会勉强打印奇怪的输出。评估pattern.search('name.txt')直接给出: <_sre.SRE_Match对象; span =(4,8),match ='.txt'> – crx

相关问题