ホームページ >バックエンド開発 >Python チュートリアル >Pythonの正規表現を詳しく解説
正規表現とは、文字列の集合を簡潔に表現するために使用される表現です。この記事では主に Python の正規表現について詳しく説明します。お役に立てれば幸いです。
演算子 | 説明 | インスタンス |
---|---|---|
. | は任意の単一文字を表します | |
[ ] | 文字セット、単一文字の値 スコープ |
[abc ] は a または b または c を意味し、[a-z] は a ~ z の単一文字を意味します[abc] 表示a或b或c; [a-z]表示a到z单个字符 |
[^ ] | 非字符集,单个字符排除范围 |
[^abc] 表示非a或非b或非c |
* | 前一个字符的0次或无限次扩展 |
abc* 表示ab、abc、abcc、abccc...
|
+ | 前一个字符的1次或无限次扩展 |
abc+ 表示abc、abcc、abccc...
|
? | 前一个字符的0次或1次扩展 |
abc? 表示ab、abc
|
| | 左右表示任意一个 |
abc|def 表示abc或def
|
{m} | 前一个字符的m次扩展 |
ab{2} 表示abcc
|
{m,n} | 前一个字符的m至n次扩展(含n) |
ab{1,2} 表示abc、abcc
|
^ | 匹配字符串开头 |
^abc 表示abc且在一个字符串的开头 |
$ | 匹配字符串结尾 |
abc$ 表示abc且在一个字符串的结尾 |
( ) | 分组标记,内部只能使用|操作符 |
(abc|def) 表示abc或def
|
非文字セット、単一文字の除外範囲 | ||
0、または前の文字の無制限の拡張を意味します |
abc* は、ab、abc、abcc、を意味しますabccc...
|
abc+
は、abc、abcc、abccc...
?
前の文字の0または1の展開
abc?
はab、abc
を意味します
|
は左または右のAを意味します
abc|def
は abc または def
を表します
{m,n} | |
---|---|
^ | |
^abc はabcを示し、文字列の先頭にあります |
|
文字列の末尾と一致します |
abc$ は abc を意味し、文字列 |
( ) | グループ化マークの末尾にあり、内部的には | 演算子のみを使用できます |
d | |
>>> match= re.findall(r'[1-9]\d{5}','100081BIT BIT10008676')>>> print(match) ['100081', '100086']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676')>>> match ['', 'BIT BIT', '76']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676',maxsplit=1)>>> match ['', 'BIT BIT10008676'] >>>for m in re.finditer(r'[1-9]\d{5}','100081BIT BIT10008676'): if m: print(m.group(0)) 100081100086
re.match の違いは、文字列の先頭のみと一致します。文字列の先頭が正規表現と一致しない場合、関数は re の間、None を返します。検索は、一致するものが見つかるまで文字列全体を照合します。 [ ]
[abc]
は a または b または c を意味し、[a-z] は a ~ z の単一文字を意味します
非文字セット、単一文字の除外範囲 | ||
---|---|---|
abc* は、 |
+ |
|
abc+ を意味します> は、abc、abcc、abccc... を意味します。
|
?[abc] 表示a或b或c; [a-z]表示a到z单个字符 |
|
[^ ] | 非字符集,单个字符排除范围 |
[^abc] 表示非a或非b或非c |
* | 前一个字符的0次或无限次扩展 |
abc* 表示ab、abc、abcc、abccc...
|
+ | 前一个字符的1次或无限次扩展 |
abc+ 表示abc、abcc、abccc...
|
? | 前一个字符的0次或1次扩展 |
abc? 表示ab、abc
|
| | 左右表示任意一个 |
abc|def 表示abc或def
|
{m} | 前一个字符的m次扩展 |
ab{2} 表示abcc
|
{m,n} | 前一个字符的m至n次扩展(含n) |
ab{1,2} 表示abc、abcc
|
^ | 匹配字符串开头 |
^abc 表示abc且在一个字符串的开头 |
$ | 匹配字符串结尾 |
abc$ 表示abc且在一个字符串的结尾 |
( ) | 分组标记,内部只能使用|操作符 |
(abc|def) 表示abc或def
| 前の文字の 0 または 1 つの展開
| | 左右はいずれかを表します |
|
{m} | 前の文字の m 倍の展開 |
{m,n}
前の文字の m から n 回の展開を意味します ( n)
ab{1,2 }
は、abc、abcc
を意味します
^
は文字列の先頭と一致します
^abc は abc を意味し、文字列の先頭にあります
$
abc$
は abc を意味し、文字列の末尾にあります( ) | グループ化マーク、| 演算子のみが内部で使用可能 |
---|---|
d | 数値、 [0-9] |
w | |
上記の演算子に精通している場合は、次のようになります。例は難しくありません。 | 1. 数値のみを入力できます: ^[0-9]*$ |
3. 少なくとも n 桁の数値のみを入力できます。数値: ^d {n,}$ | 4. m~n 個の数値のみを入力できます: ^d{m,n}$ |
6. 小数点以下 2 桁の正の実数のみを入力できます: ^[0-9]+(.[0-9]{2})?$ | 7. 小数点以下 1 ~ 3 桁の正の実数のみを入力します: ^[0-9]+(.[0-9]{1,3})?$ |
関数
説明
re.match()からの一致文字列 A パターンの開始位置。開始位置が正常に一致しない場合、match() は none を返します。
🎜文字列全体をスキャンし、最初に成功した一致を返します。 🎜🎜🎜🎜re.sub()🎜🎜は、正規表現に一致する文字列内のすべての部分文字列を置換し、置換された文字列を返すために使用されます🎜🎜🎜🎜re.findall()🎜🎜リスト内の文字列を検索します。一致するすべての部分文字列を返します🎜🎜🎜🎜re.split()🎜🎜 正規表現の一致結果に従って文字列を分割し、リストを返します🎜🎜🎜🎜re.fiditer()🎜🎜 文字列を検索し、反復タイプを返します各反復要素は一致オブジェクトです🎜🎜🎜🎜>>> match= re.findall(r'[1-9]\d{5}','100081BIT BIT10008676')>>> print(match) ['100081', '100086']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676')>>> match ['', 'BIT BIT', '76']>>> match = re.split(r'[1-9]\d{5}','100081BIT BIT10008676',maxsplit=1)>>> match ['', 'BIT BIT10008676'] >>>for m in re.finditer(r'[1-9]\d{5}','100081BIT BIT10008676'): if m: print(m.group(0)) 100081100086🎜 re.match と re.search の違いは、文字列の先頭が一致しない場合にのみ一致します。正規表現。一致が見つからない場合、関数は None を返します。一方、re.search は一致が見つかるまで文字列全体を照合します。 🎜🎜🎜🎜🎜🎜関連推奨事項: 🎜🎜🎜js正規表現について詳細説明🎜🎜🎜🎜php正規表現詳細説明_PHPチュートリアル🎜🎜🎜🎜非常に重要なphp正規表現詳細説明、php正規表現詳細説明🎜🎜
以上がPythonの正規表現を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。