2017-04-18 44 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

相關問題