Python RegEx

Ang RegEx o pangunahing ekspresyon ay isang serye ng mga character na gumagawa ng paternong paghahanap.

Ang RegEx ay maaaring gamitin upang suriin kung ang string ay naglalaman ng tinukoy na paternong paghahanap.

Modulo RegEx

Python ay nagbibigay ng pangalan re Ang built-in package, na maaaring gamitin para sa paggamit ng regular expression。

Import re Module:

import re

RegEx sa Python

Import re Pagkatapos ng module, maaari nating magsimula gamit ang regular expression:

Eksemplo

Hanapin ang string upang makita kung ito ay nagsisimula sa "China" at tumatapos sa "country":

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

Paggamit ng Eksemplo

RegEx function

re Ang module ay nagbibigay ng isang grupo ng function, na nagbibigay-daan sa amin na makuha ang string upang gawin ang pagkakamit:

Function 描述
findall Ibalik ang isang listahan na naglalaman ng lahat ng match
search Ibalik ang Match object kung mayroong match sa anumang posisyon ng string
split Ibalik ang isang listahan ng string na hinahati sa bawat pagkakamit
sub Pagpalit ng string gamit ang anumang match

Ang meta character

Ang meta character ay ang character na may partikular na kahulugan:

Character 描述 Eksemplo TIY
[] Isang grupo ng character "[a-m]" 试一试
\ Ipatungo ang partikular na sequence(may gamit din para sa pag-escape ng partikular na character) "\d" 试一试
. Anumang character(walang newline character) "he..o" 试一试
^ Nagsisimula sa "^hello" 试一试
$ Tumatapos sa "world$" 试一试
* Wala o maraming beses "aix*" 试一试
+ Isang beses o maraming beses "aix+" 试一试
{} Tutukoy na bilang ng pagkakaroon "al{2}" 试一试
| Alinman sa dalawa "falls|stays" 试一试
() Pagsasakop at Pagbubuo ng Paghahalaga

Ang partikular na sequence

Ang partikular na sequence ay \ na sinundan ng anumang character mula sa sumusunod na talahanayan, may partikular na kahulugan:

Character 描述 Eksemplo TIY
\A Kung ang tinukoy na character ay nasa simula ng string, ibabalik ang match "\AThe" 试一试
\b Ibalik ang isang match kung ang tinukoy na character ay nasa simula o katapusan ng salita r"\bain"
r"ain\b"
试一试
试一试
\B Ibalik ang isang match kung ang tinukoy na character ay nasa eksistensya ng character, ngunit hindi nasa simula o katapusan ng salita r"\Bain"
r"ain\B"
试一试
试一试
\d Ibalik ang isang match kung ang string ay may anumang numero(numero 0-9) "\d" 试一试
\D Ibalik ang isang match kung ang string ay walang anumang numero "\D" 试一试
\s Ibalik ang isang match kung ang string ay may anumang blank character "\s" 试一试
\S Ibalik ang isang match kung ang string ay walang anumang blank character "\S" 试一试
\w Ibalik ang isang match kung ang string ay may anumang word character
(Mga character mula sa a hanggang Z, ang mga numero mula 0 hanggang 9 at ang underscore _ character)
"\w" 试一试
\W Ibalik ang isang match kung ang string ay walang anumang word character "\W" 试一试
\Z Kung ang tinukoy na character ay nasa huling bahagi ng string, ibabalik ang match "Spain\Z" 试一试

集合(Set)

集合(Set)是一对方括号 [] 内的一组字符,具有特殊含义:

集合 描述 试一试
[arn] 返回一个匹配项,其中存在指定字符(a,r 或 n)之一 试一试
[a-n] 返回字母顺序 a 和 n 之间的任意小写字符匹配项 试一试
[^arn] 返回除 a、r 和 n 之外的任意字符的匹配项 试一试
[0123] 返回存在任何指定数字(0、1、2 或 3)的匹配项 试一试
[0-9] 返回 0 与 9 之间任意数字的匹配 试一试
[0-5][0-9] 返回介于 0 到 9 之间的任何数字的匹配项 试一试
[a-zA-Z] 返回字母顺序 a 和 z 之间的任何字符的匹配,小写或大写 试一试
[+] 在集合中,+、*、.、|、()、$、{} 没有特殊含义,因此 [+] 表示:返回字符串中任何 + 字符的匹配项 试一试

findall() 函数

findall() 函数返回包含所有匹配项的列表。

Eksemplo

打印所有匹配的列表:

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

Paggamit ng Eksemplo

这个列表以被找到的顺序包含匹配项。

如果未找到匹配项,则返回空列表:

Eksemplo

如果未找到匹配,则返回空列表:

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

Paggamit ng Eksemplo

search() 函数

search() 函数搜索字符串中的匹配项,如果存在匹配则返回 Match 对象。

如果有多个匹配,则仅返回首个匹配项:

Eksemplo

在字符串中搜索第一个空白字符:

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

Paggamit ng Eksemplo

如果未找到匹配,则返回值 Wala

Eksemplo

进行不返回匹配的检索:

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

Paggamit ng Eksemplo

split() 函数

split() 函数返回一个列表,其中字符串在每次匹配时被拆分:

Eksemplo

在每个空白字符处进行拆分:

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

Paggamit ng Eksemplo

Maaari mong magkaroon ng pagpili maxsplit 参数来控制出现次数:

Eksemplo

仅在首次出现时拆分字符串:

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

Paggamit ng Eksemplo

sub() 函数

sub() 函数将匹配替换为您选择的文本:

Eksemplo

数字 9 替换每个空白字符:

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

Paggamit ng Eksemplo

Maaari mong magkaroon ng pagpili count Ang parameter na ginamit upang kontrolin ang bilang ng pagpalitan:

Eksemplo

Palitan ang dalawang unang pagkakaroon:

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

Paggamit ng Eksemplo

Match na bagay

Ang Match na bagay ay isang bagay na naglalaman ng impormasyon tungkol sa paghahanap at mga resulta.

Komentaryo:Kung walang pagkakasunod, ibabalik ang halaga Walasa halip na Match na bagay.

Eksemplo

Ang paggawa ay magiging magiging isang Match na bagay na naka-hanap

import re
str = "China is a great country"
x = re.search("a", str)
print(x) # Magiging magiging isang bagay ang pagiprint

Paggamit ng Eksemplo

Ang Match na bagay ay nagbibigay ng mga attribute at method na ginamit upang kunin ang impormasyon tungkol sa paghahanap at mga resulta:

  • span() Ang binabagong tuple ay naglalaman ng simula at katapusan na lokasyon ng pagkakasunod-sunod
  • .string Ibalik ang string na ipinasok sa function
  • group() Ibalik ang bahaging naka-match ng string

Eksemplo

Iprint ang lokasyon ng unang naka-match na string (simula at katapusan na lokasyon).

Hanapin ang regular expression na nagsisimula sa malaki na "C" ng anumang salita:

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

Paggamit ng Eksemplo

Eksemplo

Iprint ang string na ipinasok sa function:

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

Paggamit ng Eksemplo

Eksemplo

Iprint ang bahaging naka-match ng string.

Hanapin ang regular expression na nagsisimula sa malaki na "C" ng anumang salita:

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

Paggamit ng Eksemplo

Komentaryo:Kung walang pagkakasunod, ibabalik ang halaga Walasa halip na Match na bagay.