pythonを文字列の先頭と最後に合わせる方法について詳しく説明します。
1、指定されたテキストモードで文字列の先頭または末尾を確認します。例えば、ファイル名の末尾、URL Schemeなどです。文字列の先頭または最後をチェックする簡単な方法は、str.starts with()またはstr.endswith()を使用する方法である。たとえば:
>>> filename = 'spam.txt'
>>> filename.endswith('.txt')
True
>>> filename.startswith('file:')
False
>>> url = 'http://www.python.org'
>>> url.startswith('http:')
True
>>>
2、複数のマッチが可能であることを確認したいなら、すべてのマッチ項目を一つの元のグループに入れてから、starts with()またはendswith()に送るしかないです。
>>> import os
>>> filenames = os.listdir('.')
>>> filenames
[ 'Makefile', 'foo.c', 'bar.py', 'spam.c', 'spam.h' ]
>>> [name for name in filenames if name.endswith(('.c', '.h')) ]
['foo.c', 'spam.c', 'spam.h'
>>> any(name.endswith('.py') for name in filenames)
True
>>>
# 2
from urllib.request import urlopen
def read_data(name):
if name.startswith(('http:', 'https:', 'ftp:')):
return urlopen(name).read()
else:
with open(name) as f:
return f.read()
奇妙なことに、この方法ではパラメータとしてタプルを入力しなければならない。ちょうどlistまたはsetタイプの選択項目がある場合、転送パラメータを確保する前にtuple()を呼び出して元のグループに変換します。たとえば:
>>> choices = ['http:', 'ftp:']
>>> url = 'http://www.python.org'
>>> url.startswith(choices)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: startswith first arg must be str or a tuple of str, not list
>>> url.startswith(tuple(choices))
True
>>>
3、starts with()とendswith()の方法は非常に便利な方法で文字列の先頭と最後のチェックをすることを提供しています。同様の操作はスライスを使用しても実現できますが、コードはそんなに優雅ではありません。たとえば:
>>> filename = 'spam.txt'
>>> filename[-4:] == '.txt'
True
>>> url = 'http://www.python.org'
>>> url[:5] == 'http:' or url[:6] == 'https:' or url[:4] == 'ftp:'
True
>>>
4、正規表現を使ってもいいです。例えば、
>>> import re
>>> url = 'http://www.python.org'
>>> re.match('http:jhttps:jftp:', url)
<_sre.SRE_Match object at 0x101253098>
>>>
5、他の操作、例えば、通常のデータ統合と組み合わせると、starts with()とendswith()の方法がいいです。例えば、次の文は、指定されたファイルタイプがあるかどうかを確認します。
if any(name.endswith(('.c', '.h')) for name in listdir(dirname)):
...
以上のpythonマッチ文字列の先頭と最後の方法について詳しく説明しますと、小編集は皆さんに全部の内容を共有していますので、参考にしていただければと思います。よろしくお願いします。