Heim >Backend-Entwicklung >Python-Tutorial >Wie man reguläre Ausdrücke in Python verwendet und welche Regeln für den Abgleich regulärer Ausdrücke gelten

Wie man reguläre Ausdrücke in Python verwendet und welche Regeln für den Abgleich regulärer Ausdrücke gelten

WBOY
WBOYnach vorne
2023-05-12 18:16:211390Durchsuche

1 Leitfadenbibliothek

import re

2 Vorlage verwenden

re_pattern = re.compile(pattern, flags=0)
result = re.findall(re_pattern,string)

3 Beschreibung

Regulären Ausdruck kompilieren Formel, einen regulären Ausdruck generieren (Muster-)Objekt Volltextübereinstimmung, die übereinstimmenden Ergebnisse werden in Listenform zurückgegeben
Parameter Beschreibung
Muster Passend Ausdruck wie r'abc' kann verwendet werden Match abc
flags

Optional, Flag-Bit, Kontroll-Matching-Methode, optionaler Wert:

re.I Groß-/Kleinschreibung ignorieren

re.L Stellt den Sonderzeichensatz w W b B s S dar, abhängig von der aktuellen Umgebung

re.M Mehrzeilenmodus

re.S Beliebiges Zeichen einschließlich Zeilenumbrüchen

re.U Zeichen gemäß dem Unicode-Zeichensatz analysieren

re.X Um die Lesbarkeit zu verbessern, ignorieren Sie Leerzeichen und # nach Kommentaren

re.A Analysieren Sie Zeichen gemäß ASCII-Code

kompilieren
findall

4 示例

以下代码用来在字符串 str 中匹配符合如下规则的字符串:

中英文括号开头+1个大写字母+1个或无限个数字+0个或1个字符“.”+0个或1个字符“/”+0个或无限个数字+中英文括号结尾

# 导库
import re
# 待处理字符串
str = '小分裂细胞型(弥漫性)非霍奇金淋巴瘤(M96720/3)(Y97.1)(Y77)(yyy)'
# 设定匹配规则,编译
re_str = re.compile(r'[(|(][A-Z][0-9]+[.]?[/]?[0-9]*[)|)]', re.S)
# 匹配
ans = re.findall(re_str,str)
# 打印
print(ans)

在字符串 str 中的匹配结果如下,可见有三个字符串符合匹配规则:

Wie man reguläre Ausdrücke in Python verwendet und welche Regeln für den Abgleich regulärer Ausdrücke gelten

5 正则表达式匹配规则

语法

描述

正则表达式示例

对应可匹配字符串示例

一般字符 匹配自身 abc abc
元字符


. 除了换行符之外的任意单个字符 a.c abc
* 匹配前面一个字符0或无限次 ab*

a

abbb

+ 匹配前面一个字符1次或无限次 ab+

ab

abbb

? 匹配前面一个字符0次或1次 ab?

a

ab

\ 转义符,使后面一个字符保持原来的意思 a\.b a.b
[]

字符集,里面的字符可以是任意数量个字符,也可以是一个范围,比如可以是[abc]或者[a-c],均表示匹配abc中的一个字符。同时,可以将第一个字符设为^,用来表示取反,如[^abc]表示除了abc以外的字符。


注意,所有的特殊字符在[]内都失去其原有的特殊含义,如[.]仅表示匹配字符.而不是匹配任意字符了,当然,如果要使用]、-或^三个字符,仍需要使用转义字符\

[abc]

[a-c]

a

b

c

{m} m是一个非负整数,表示匹配前一个字符m次 abc{2} abcc
{m,n} m和n都是非负整数,且m≤n,表示最少匹配m次且最多匹配n次 ab{2,4}c abbc
| 逻辑或,匹配左右表达式中的任意一个。具有“短路”特点,先匹配左侧表达式,再匹配右侧表达式。建议用()括起来,否则会作用于整个正则表达式 abc|123

abc

123

() 括号,将表达式括起来作为一个分组。分组表达式是一个整体 a(bc)?d

ad

abcd

定位符


^ 匹配字符串的开头字符 ^abc abc
$ 匹配字符串的结尾字符 abc$ abc
\b

匹配一个单词的边界

如\bab表示匹配字符串ab且ab前面要是空格

如ab\b表示匹配字符串ab且ab后面要是空格

\bab

可以匹配到abc中的ab

无法匹配到cab中的ab

\B 匹配非边界 \Bab

可以匹配到cab中的ab

无法匹配到abc中的ab

预定义字符集


\d 匹配数字,等价于[0-9] a\dc a1c
\D 匹配非数字,等价于[^\d] a\Dc abc
\s 匹配空白字符,包括空格、制表符、换页符等 a\sc a c
\S 匹配非空白字符,等价于[^\s] a\Sc abc
\w 匹配字母数字下划线,等价于[a-zA-Z0-9_] a\wc a_c
\W 匹配非字母数字下划线,等价于[^\w] a\Wc a c

Das obige ist der detaillierte Inhalt vonWie man reguläre Ausdrücke in Python verwendet und welche Regeln für den Abgleich regulärer Ausdrücke gelten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen