python 正則實用例子

本文主要關於python的正則表達式的符號與方法。

  • findall: 找尋所有匹配,返回所有組合的列表
  • search: 找尋第一個匹配並返回
  • sub: 替換符合規律的內容,並返回替換後的內容

**.**:匹配除了換行符以外的任意字符

1
2
3
4
 a =
b = re.findall(
print
# ['xy12']

*****:匹配前一個字符0次或者無限次

1
2
3
4
 a =
b = re.findall(
print
# ['x', '', 'x', '', '', '', '', '']

**?**:匹配前一個字符0次或者1次

1
2
3
4
 a =
b = re.findall(
print
# ['x', '', '', '', '', '']

**.***:貪心算法

1
2
3
 b = re.findall(
print
# ['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']

**.*?**:非貪心算法

1
2
3
 c = re.findall(
print
# ['xxIxx', 'xxlovexx', 'xxyouxx']

**()**:括號內結果返回

1
2
3
4
5
6
7
8
 d = re.findall(
print
for
print
# ['I', 'love', 'you']
# I
# love
# you

re.S

 1
2
3
4
5
6
 s =
xxfsdfxxworldxxasdf'''

d = re.findall(
print
# ['hellon', 'world']

對比findall與search的區別

1
2
3
4
5
6
7
 s2 =
f = re.search(
print
f2 = re.findall(
print
# love
# love

雖然兩者結果相同,但是search是搭配group來得到第二個匹配,而findall的結果是[('I', 'love')],包含元組的列表,所以需要f2[0][1]來引入。

sub

 1
2
3
4
 s =
output = re.sub(
print
# 123789123

例如我們需要將文檔中的所有的png圖片改變路徑,即需要找到所有的

1
2
3
4
5
6
7
8
9
10
11
12


import

def
# Convert group 0 to an integer.
v = m.group(
print
# Multiply integer by 2.
# ... Convert back into string and return it.
print
return

結果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 >>>
basic/autoencoder.png
RNN.png
basic/RNN.png
rnn_step_forward.png
basic/rnn_step_forward.png
rnns.png
basic/rnns.png
rnn_cell_backprop.png
basic/rnn_cell_backprop.png
LSTM.png
basic/LSTM.png
LSTM_rnn.png
basic/LSTM_rnn.png
attn_mechanism.png
basic/attn_mechanism.png
attn_model.png
basic/attn_model.png

仿照上面案例,我們可以方便的對我們的任務進行定制。

subn

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
 import

def
# Convert.
v =
# Add 2.
return

# Call re.subn.
result = re.subn(

print
print

 1
2
3
 >>>
Result string:
Number of substitutions:

Leave a Comment

Your email address will not be published.