Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in das re-Modul und reguläre Ausdrücke in Python (mit Code)

Einführung in das re-Modul und reguläre Ausdrücke in Python (mit Code)

不言
不言nach vorne
2019-02-20 14:27:322435Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in das Re-Modul und die regulären Ausdrücke in Python. Ich hoffe, dass er Ihnen als Referenz dienen wird.

Regulärer Ausdruck (englisch: Regular Expression, im Code oft als Regex, Regexp oder RE abgekürzt), auch bekannt als regulärer Ausdruck, regulärer Ausdruck, regulärer Ausdruck, regulärer Ausdruck, regulärer Ausdruck, ist ein Konzept in der Informatik . Reguläre Ausdrücke verwenden eine einzelne Zeichenfolge, um eine Reihe von Zeichenfolgen zu beschreiben und abzugleichen, die einer bestimmten Syntaxregel entsprechen. In vielen Texteditoren werden häufig reguläre Ausdrücke verwendet, um Text abzurufen und zu ersetzen, der einem bestimmten Muster entspricht.

Regeln für reguläre Ausdrücke, Einzelzeichenübereinstimmung

字符 功能 正则表达式示例 符合匹配示例
. 匹配任意一个字符(除了n) b.b bab,b2b
[ ] 匹配来自[]中字符集的任意一个字符 i [abCde]m i am
d 匹配任何十进制数字,与[0-9]一致 wdcschool w3cschool
D 匹配非数字,即不是数字 mouDh mouth
s 匹配任何空格字符,与[ntrvf]相同 islike i like
S 匹配任何非空白字符,与s相反 nSe noe,n3e
w 匹配任何字母数字字符,与[A-Za-z0-9_]相同 [A-Za-z]w+
W 匹配非单词字符 [0-9]W[A-Z] 3 A

gibt Mengenübereinstimmung an

字符 功能 正则表达式示例 符合匹配的示例
* 匹配0次或者多次前面出现的正则表达式,即可有可无 a* aaa
+ 匹配前一个字符出现1次或者无限次,即至少有一次 a+ aaa
? 匹配前一个字符出现1次或者0次,要么有一次,要么没有 a? a或者b
{m} 匹配前一个字符出现m次 [0-9]{5} 12345
{m.} 匹配前一个字符至少出现m次 a{5.} aaaaa
{m,n} 匹配前一个字符出现从m到n次 a{2,6} aaa

gibt Grenzübereinstimmung an

字符 功能 正则表达式示例
^ 匹配字符串起始部分 ^Dear
$ 匹配字符串终止部分 fi$
b 匹配任何单词的边界 bTheb
B 匹配非单词边界 .*Bver

Übereinstimmungsgruppe

字符 功能
匹配左右任意一个表达式
(ab) 将括号中字符作为一个分组
num 引用分组num匹配到的字符串
(?P) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串

re-Modul

In Python können Sie das integrierte re-Modul verwenden, um reguläre Ausdrücke zu verwenden

Gemeinsame Funktionen und Methoden des Re-Moduls

核心函数 说明
compile(pattern,flags=0) 使用任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象
re模块函数和正则表达式对象方法 说明
match(pattern,string,flags=0) 尝试使用带有可选的标记的正则表达式的模式来匹配字符串。如果匹配成功,就返回匹配对象; 如果失败,就返回 None
search(pattern,string,flags=0) 使用可选标记搜索字符串中第一次出现的正则表达式模式。 如果匹配成功,则返回匹配对象; 如果失败,则返回 None
findall(pattern,string,[,flags]) 查找字符串中所有出现的正则表达式,并返回一个列表
split(pattern,string,max=0) 根据正则表达式的模式分隔符,spilt函数将字符串分割为列表,然后返回成功匹配的列表,分割最多操作max次(默认分割所有匹配成功的位置)
sub(pattern,repl,string,count=0) 使用repl替换所有正则表达式的模式在字符串中出现的位置,除非定义count,否则就将替换所有出现的位置
常用的匹配对象方法 说明
group(num=0) 默认返回整个匹配对象或者返回编号为num的特定子组
groups(default=None) 返回一个包含所有匹配子组的元组,如果没有成功匹配,返回一个空元组
span()
常用的模块属性,大多数用于对正则表达式函数的修饰 说明
re.I 使匹配对大小写不敏感(忽略大小写)
re.S .(点号)匹配除了n之外的所有字符,re.S标记表示.(点号)能够匹配全部字符
re.M 多行匹配,影响^和$
re.U 根据Unicode字符集解析字符。影响w,W,b和B
re.X 该标志通过给予你更灵活的格式以便你讲正则表达式写得更易于理解

Allgemeine Verwendung des re-Moduls

  1. Verwenden Sie die Funktion compile(), um die Zeichenfolgenform eines regulären Ausdrucks in ein reguläres Ausdrucksobjekt zu kompilieren.

  2. gleicht den Text über eine Reihe von Methoden ab, die vom regulären Ausdrucksobjekt bereitgestellt werden (z. B.: match()) und erhält das Übereinstimmungsergebnis, ein Match-Objekt 🎜>

  3. Abschließend nutzen Sie die vom
  4. -Objekt bereitgestellten Eigenschaften und Methoden (z. B.

    ), um Informationen abzurufen und bei Bedarf weitere Vorgänge auszuführen. Matchgroup()

  5. Beispiel zur Verwendung des Moduls

Modul importieren

import re

Funktioncompile() Die Kompilierungsfunktion wird zum Kompilieren regulärer Ausdrücke und zum Generieren eines Musterobjekts verwendet. Die allgemeine Verwendungsform lautet wie folgt:

import re

# 将正则表达式编译成pattern对象
pattern = re.compile(r'\d+')

Nach dem Kompilieren in ein reguläres Ausdrucksobjekt können Sie die oben erwähnte Methode des regulären Ausdrucksobjekts verwenden. Die

-Methode match()Match-Methode wird verwendet, um den Kopf der Zeichenfolge zu finden (die Startposition kann ebenfalls angegeben werden). Es handelt sich um eine -Übereinstimmung, solange Sobald eine Übereinstimmung gefunden wird, werden die Ergebnisse zurückgegeben, anstatt nach allen übereinstimmenden Ergebnissen zu suchen. Die allgemeine Verwendungsform lautet wie folgt:

match(string[, pos[, endpos]])
一次 wobei string die abzugleichende Zeichenfolge ist, pos und endpos optionale Parameter sind, die die Positionen und

der Zeichenfolge angeben sind jeweils 0 und 起始 (Stringlänge). Wenn Sie also pos und endpos nicht angeben, vergleicht die Match-Methode standardmäßig den Kopf der Zeichenfolge. 终点lenWenn die Übereinstimmung erfolgreich ist, wird ein Match-Objekt zurückgegeben. Wenn keine Übereinstimmung vorliegt, wird „None“ zurückgegeben.

>>> import re
>>> 
>>> pattern = re.compile(r'\d+') # 正则表达式表示匹配至少一个数字
>>> 
>>> m = pattern.match("one2three4") # match默认从开头开始匹配,开头是字母o,所以没有匹配成功
>>> print(m) # 匹配失败返回None
None
>>> 
>>> m = pattern.match("1two3four") # 开头字符是数字,匹配成功
>>> print(m)
<_sre.SRE_Match object; span=(0, 1), match=&#39;1&#39;>
>>> 
>>> m.group() # group()方法获取匹配成功的字符
'1'
>>> m = pattern.match("onetwo3four56",6,12) # 指定match从数字3开始查找,第一个是数字3,匹配成功
>>> print(m)
<_sre.SRE_Match object; span=(6, 7), match=&#39;3&#39;>
>>> m.group()
'3'

Das obige ist der detaillierte Inhalt vonEinführung in das re-Modul und reguläre Ausdrücke in Python (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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