2017-04-18 5 views
-1

Pythonでは、文字列の終わりのパターンテストを作成する方法。だから、のようなだけで何か:Pythonで終わる文字列のパターンテスト

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

しかし、明らかでは動作しないようです。

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

は私が再ライブラリを使用しようとしました。誰かがコードを貼り付けることができますか?再ライブラリ参照へのリンクはありません。今日の私はそれを台無しにしています。君たちありがとう!

+1

' "name.txt" .endswith( 'TXT。')'シンプルサフィックスについて。 '' * .txt ''は有効ではなく、 '' * ''は反復演算子です。そして ''。 ''は任意の文字にマッチします。アンカーリングはあなたの友人です: 'r '。* \。txt $''。しかし、ええ、 'fnmatch()'を使うだけです。 – dhke

+1

これは正規表現のパターンではありません。あなたが探しているモジュールは['fnmatch'](https://docs.python.org/3.6/library/fnmatch.html)です。 –

+0

@dhke '*'で始まるパターンはまったく有効ではありません。 –

答えて

0

を使用して、文字列が指定されたテキストで終わるかどうかを確認できます。そのパターン検索、あなたは正規表現を使用してファイルの拡張子を探して行くしたい場合は、以下のことを行うことができ、ちょうどあなたの学習に

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

指定した文字列の末尾(\ Zは、最後に一致する指定):

import re 

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

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

:あなただけのような単純なテストを行うことができます

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

print filename.endswith(pattern) 
+0

そして私がここでも学んだことは、if関数でTrueを評価するパターンであり、直接評価すると奇妙な出力が表示されることです。 pattern.search( 'name.txt')を直接評価すると、次のようになります。 <_sre.SRE_Matchオブジェクト。 span =(4,8)、match = '。txt'> – crx

関連する問題