Python RegEx

RegEx ko kuma sabonin na bayyana girmuwarin na nazarin

RegEx za iya yin girmuwarin da na cikin string a cikin sabonin da an zartar

Modulu RegEx

Python yana mutumma ne re 的内置包,可用于处理正则表达式。

导入 re 模块:

import re

Python 中的 RegEx

导入 re 模块后,就可以开始使用正则表达式了:

Misali

检索字符串以查看它是否以 "China" 开头并以 "country" 结尾:

import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)

Run Misali

RegEx 函数

re 模块提供了一组函数,允许我们检索字符串以进行匹配:

函数 ba da
findall 返回包含所有匹配项的列表
search 如果字符串中的任意位置存在匹配,则返回 Match 对象
split 返回在每次匹配时拆分字符串的列表
sub 用字符串替换一个或多个匹配项

元字符

元字符是具有特殊含义的字符:

字符 ba da 示例 TIY
[] 一组字符 "[a-m]" ci gaba
\ 示意特殊序列(也可用于转义特殊字符) "\d" ci gaba
. 任何字符(换行符除外) "he..o" ci gaba
^ 起始于 "^hello" ci gaba
$ 结束于 "world$" ci gaba
* 零次或多次出现 "aix*" ci gaba
+ 一次或多次出现 "aix+" ci gaba
{} 确切地指定的出现次数 "al{2}" ci gaba
| 两者任一 "falls|stays" ci gaba
()` 捕获和分组

特殊序列

特殊序列指的是 \ 后跟下表中的某个字符,拥有特殊含义:

字符 ba da 示例 TIY
\A 如果指定的字符位于字符串的开头,则返回匹配项 "\AThe" ci gaba
\b 返回指定字符位于单词的开头或末尾的匹配项 r"\bain"
r"ain\b"
ci gaba
ci gaba
\B 返回指定字符存在的匹配项,但不在单词的开头(或结尾处) r"\Bain"
r"ain\B"
ci gaba
ci gaba
\d 返回字符串包含数字的匹配项(数字 0-9) "\d" ci gaba
\D 返回字符串不包含数字的匹配项 "\D" ci gaba
\s 返回字符串包含空白字符的匹配项 "\s" ci gaba
\S 返回字符串不包含空白字符的匹配项 "\S" ci gaba
\w 返回一个匹配项,其中字符串包含任何单词字符
(从 a 到 Z 的字符,从 0 到 9 的数字和下划线 _ 字符)
"\w" ci gaba
\W 返回一个匹配项,其中字符串不包含任何单词字符 "\W" ci gaba
\Z 如果指定的字符位于字符串的末尾,则返回匹配项 "Spain\Z" ci gaba

集合(Set)

ciki (Set) ita ce kiyace-kiyace a ciki, wanda ke da kiyace-kiyace a ciki [] a ciki na ciki, wanda ke da mahimmanci da yawa:

ciki ba da ci gaba
[arn] a ciki na a kaiwa aiki a kaiwa aiki ci gaba
[a-n] a ciki na a kaiwa aiki a kaiwa aiki ci gaba
[^arn] a ciki na a kaiwa aiki a kaiwa aiki ci gaba
[0123] a ciki na a kaiwa aiki a kaiwa aiki ci gaba
[0-9] a ciki na a kaiwa aiki a kaiwa aiki ci gaba
[0-5][0-9] a ciki na a kaiwa aiki a kaiwa aiki ci gaba
[a-zA-Z] a ciki na a kaiwa aiki a kaiwa aiki, kuma a kaiwa aiki a kaiwa aiki ci gaba
[+] a ciki, +, *, ., |, (), $, {} suna da yawa, kuma [+] yana nufin: ci gaba

fannan findall()

findall() fannan kuma ta a gina tsarin a kaiwa aiki a kaiwa aiki

Misali

a ciki na a kaiwa aiki a kaiwa aiki

import re
str = "China is a great country"
x = re.findall("a", str)
print(x)

Run Misali

a kowane a kaiwa aiki a kaiwa aiki a kaiwa aiki

a kowane a kaiwa aiki a kaiwa aiki

Misali

a kowane a kaiwa aiki a kaiwa aiki

import re
str = "China is a great country"
x = re.findall("USA", str)
print(x)

Run Misali

fannan search()

search() fannan kuma ta a nazarin a kaiwa aiki a kaiwa aiki, kowane a kaiwa aiki a kaiwa aiki

a kowane a kaiwa aiki a kaiwa aiki

Misali

yana nazarin kanananin dake a kaiwa aiki

import re
str = "China is a great country"
x = re.search("\s", str)
print("The first white-space character is located in position:", x.start())

Run Misali

a kowane a kaiwa aiki a kaiwa aiki None:

Misali

yana nazarin a kaiwa aiki

import re
str = "China is a great country"
x = re.search("USA", str)
print(x)

Run Misali

fannan split()

split() fannan kuma ta a gina tsarin a kaiwa aiki a kowane aiki

Misali

yana kaiya a kaiwa kanananin dake

import re
str = "China is a great country"
x = re.split("\s", str)
print(x)

Run Misali

Zai iya kawo amfani da maxsplit amfani da dona a kaiwa aiki

Misali

yana kaiya kafin a kaiwa aiki

import re
str = "China is a great country"
x = re.split("\s", str, 1)
print(x)

Run Misali

fannan sub()

sub() fannan kuma ta yin aiki na mutum

Misali

da 9 ya a kanananin dake

import re
str = "China is a great country"
x = re.sub("\s", "9", str)
print(x)

Run Misali

Zai iya kawo amfani da count Paramita don kawo karshen koyin:

Misali

Koyi daga sabon hanyar:

import re
str = "China is a great country"
x = re.sub("\s", "9", str, 2)
print(x)

Run Misali

Obaje Kwallon Kwallon

Obaje Kwallon Kwallon yana da dukkanin ta'amurin da a samu game da nazarin da a samu:

Iyali:Daga bai kuma a samu, za a cika kashi Nonedaga, ba Match Obaje ba.

Misali

A zama za a samu Obaje Kwallon Kwallon

import re
str = "China is a great country"
x = re.search("a", str)
print(x) # Za a cika da shirin obaje

Run Misali

Match Obaje ya bayyana dukkanin hanyoyin da za a iya samun ta'amurin da a samu:

  • span() Ciki da takaluma na farko da kusa
  • .string Ciki da kalmomi da a shirya
  • group() Ciki da kalmomi da a samu

Misali

Ciki da kalmomi da a samu a farko (tunawa da kusa).

Tafiyar Kwallon Kwallon da ke haɗa da kiyayya "C" a cikin kalmomi:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.span())

Run Misali

Misali

Ciki da kalmomi da a shirya

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.string)

Run Misali

Misali

Ciki da kalmomi da a samu

Tafiyar Kwallon Kwallon da ke haɗa da kiyayya "C" a cikin kalmomi:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.group())

Run Misali

Iyali:Daga bai kuma a samu, za a cika kashi Nonedaga, ba Match Obaje ba.