在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以'*'開頭的模式根本無效。 –