亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Python 正規(guī)表現(xiàn)の初めての概要

正規(guī)表現(xiàn)は、文字列が設(shè)定した文字列と一致するかどうかを判斷する、つまり文字列が特定のパターンに一致するかどうかを確認(rèn)するために使用される特殊な文字列です。

Python には、バージョン 1.5 以降、Perl スタイルの正規(guī)表現(xiàn)パターンを提供する re モジュールが追加されました。 re モジュールは、Python 言語に完全な正規(guī)表現(xiàn)機(jī)能をもたらします。

以下は、例を使用して正規(guī)表現(xiàn)を段階的に紹介します。

たとえば、文字列に特定の文字が含まれているかどうかを確認(rèn)するには、通常、次のように組み込み関數(shù)を使用してこれを?qū)g現(xiàn)します。

# 設(shè)定一個(gè)常量
a = '兩點(diǎn)水|twowater|liangdianshui|草根程序員|ReadingWithU'
# 判斷是否有 “兩點(diǎn)水” 這個(gè)字符串,使用 PY 自帶函數(shù)
print('是否含有“兩點(diǎn)水”這個(gè)字符串:{0}'.format(a.index('兩點(diǎn)水') > -1))
print('是否含有“兩點(diǎn)水”這個(gè)字符串:{0}'.format('兩點(diǎn)水' in a))

出力結(jié)果は次のとおりです。

是否含有“兩點(diǎn)水”這個(gè)字符串:True
是否含有“兩點(diǎn)水”這個(gè)字符串:True

では、正規(guī)表現(xiàn)を使用するとどうなるでしょうか?

先ほど述べたように、Python には正規(guī)表現(xiàn)のすべての機(jī)能を?qū)g現(xiàn)するための re モジュールが用意されているため、最初にいずれかの関數(shù)を使用します。

re.findall(pattern, string[, flags])

この関數(shù)は文字列の関數(shù)を?qū)g裝します。正規(guī)表現(xiàn)に一致するすべての部分文字列を検索し、返すリストを作成します。具體的な操作は次のとおりです:

import re
# 設(shè)定一個(gè)常量
a = '兩點(diǎn)水|twowater|liangdianshui|草根程序員|ReadingWithU'
# 正則表達(dá)式
findall = re.findall('兩點(diǎn)水', a)
print(findall)
if len(findall) > 0:
    print('a 含有“兩點(diǎn)水”這個(gè)字符串')
else:
    print('a 不含有“兩點(diǎn)水”這個(gè)字符串')

出力結(jié)果:

['兩點(diǎn)水']
a 含有“兩點(diǎn)水”這個(gè)字符串

出力結(jié)果からわかるように、組み込み関數(shù)も同じ機(jī)能を持ちますが、上記の例は正規(guī)表現(xiàn)の理解を容易にするためだけに示されており、この正規(guī)表現(xiàn)の記述方法には意味がないことをここで強(qiáng)調(diào)しておく必要があります。なぜこのように言うのですか?

Python 獨(dú)自の関數(shù)を使用して問題を解決できるため、正規(guī)表現(xiàn)を使用する必要はありません。また、上の例の正規(guī)表現(xiàn)の設(shè)定は正規(guī)表現(xiàn)のルールではなく定數(shù)になりますが、正規(guī)表現(xiàn)の魂はルールにあるのであまり意味がありません。

では、正規(guī)表現(xiàn)のルールはどのように記述すればよいのでしょうか?心配しないで、段階的にやってみましょう。文字列內(nèi)のすべての小文字を見つけるという簡単なことから始めましょう。まず、findall 関數(shù)の最初のパラメーターに正規(guī)表現(xiàn)ルールを記述します。ここで、[a-z] は任意の小文字に一致します。2 番目のパラメーターには、一致する文字列を入力するだけで済みます。詳細(xì)は次のとおりです。

import re
# 設(shè)定一個(gè)常量
a = '兩點(diǎn)水|twowater|liangdianshui|草根程序員|ReadingWithU'
# 選擇 a 里面的所有小寫英文字母
re_findall = re.findall('[a-z]', a)
print(re_findall)

出力結(jié)果:

['t', 'w', 'o', 'w', 'a', 't', 'e', 'r', 'l', 'i', 'a', 'n', 'g', 'd', 'i', 'a', 'n', 's', 'h', 'u', 'i', 'e', 'a', 'd', 'i', 'n', 'g', 'i', 't', 'h']

このようにして、文字列內(nèi)のすべての小文字を取得します。

學(xué)び続ける