正規表示式與運用

2021-09-22 13:47:01 字數 1711 閱讀 8783

正規表示式用的地方是很多的。比如字串處理過程中。最近遇到記錄一下。

1. 比如在shell中

1 #!/bin/bash

23 str="

date:2017-11-28 os:centos blackbord:blog"4

5 echo $str | grep centos --color

6 echo $str | grep -oe centos --color

7#組的使用

8 echo $str | sed -rne '

s/.*(date:[0-9]-[0-9]-[0-9]).*(blackbord:[a-z]+).*/group:\1 group:\2/p

'

執行輸出:

1

date:2017-11-28

os:centos blackbord:blog

2centos

3 group:date:2017-11-28 group:blackbord:blog

2. python中

1

#coding=utf-8

2importre3

4 str1="

line:20 date(2017-11-28) os:centos blackbord[blog] last"5

6 matchobj = re.search("

(date\(\d+-\d+-\d+\)).*(os:[a-z]+).*(blackbord\[[a-z]+\])

", str1)7if

matchobj:

8 num =len(matchobj.groups())

9print

"match_len:

" +str(num)

10print

matchobj.groups()

1112 date = matchobj.group(1) #

date(2017-11-28)

13 date = date[5:len(date)-1]

14 os = matchobj.group(2) #

os:centos

15 os = os[3:]

16 blackbord = matchobj.group(3) #

blackbord[blog]

17 blackbord = blackbord[10:len(blackbord) -1]

18print("

date:%s\nos:%s\nblackbord:%s

" %(date, os, blackbord))

19else:20

print

"not match str1

"

輸出:

1 match_len:3

2 ('

date(2017-11-28)

', '

os:centos

', '

blackbord[blog]')

3date:2017-11-28

4os:centos

5 blackbord:blog

例子中的正規表示式多次使用到了捕獲組,主要是方便查詢與輸出。() 每個括號是乙個捕獲組。

如:

中運用正規表示式

看到大家討論這方面的東西,作點貢獻聊表各位高手對這個版快的無私奉獻 oops 如果使用者熟悉linux下的sed awk grep或vi,那麼對正規表示式這一概念肯定不會陌生。由於它可以極大地簡化處理字串時的複雜度,因此現在已經在許多linux實用工具中得到了應用。千萬不要以為正規表示式只是perl...

正規表示式簡單運用

在學習中呢,剛認識到正則的一些用處,好處,那麼在這裡就講講正規表示式的一些簡單運用。我希望能讓你們了解到什麼是正規表示式,同時能讓自己加深對正規表示式的理解。第一次看到正規表示式的時候呢,根本看不懂這是什麼。就例如 nkeyup value value.replace u4e00 u9fa5 g,o...

正規表示式的運用

re模組 集中了正規表示式所有的功能 郵箱位址 a za z0 9 a za z com edu net 其中 a za z0 9 表示乙個字元要滿足中括號裡的範圍,字元可以是a z或者a z或者0 9或者 元字元包括 所以需要匹配元字元時需要加上反斜線 可以出現1到n次 接著加上 字元 a za ...