正規表示式

2021-09-02 16:17:23 字數 3292 閱讀 8357

正規表示式使用:

常用規則:

一、常用特殊字元:

$ 匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 『\n' 或 『\r'。要匹配 $ 字元本身,請使用 \$。

( ) 標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 \( 和 \)。

* 匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 \*。

+ 匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 \+。

. 匹配除換行符 \n之外的任何單字元。要匹配 .,請使用 \。

[ ] 標記乙個中括號表示式的開始。要匹配 [,請使用 \[。

? 匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符。要匹配 ? 字元,請使用 \?。

\ 將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 『n' 匹配字元 『n'。'\n' 匹配換行符。序列 『\\' 匹配 「\」,而 『\(' 則匹配 「(」。

^ 匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 \^。

標記限定符表示式的開始。要匹配

三、預設最長匹配 ,最短匹配需要新增?

python使用:

#!/usr/bin/python

# _*_ coding: utf-8 _*_

from pip._vendor.requests import structures

from time import strftime

import datetime,time

import re

def format():

str='version'

num=1.0

format="字串為:%s"%str

print(format)

print("字串為%s 版本為:%d"%(str,num))

word="\thello world \n "

print(" 直接輸出:",word)

print("rstrip() 後輸出:",word.rstrip())

print(" strip() 後輸出:",word.strip())

print(" strip() 後輸出:",word.lstrip())

#= !=字串比較 endswith startswith split join ,find ,rfind ,replace

def join():

str="hello , 你好,china"

str2=" word "

str2="hello"

print(str+" "+str2 )

strs=["hello "," word " ," china"]

print("".join(strs))

print(str[4])

print(str[1:3])

print(str.split( ","))

print("分割後的字串型別:", type(str.split( ",") ))

print(str.startswith("hello"))

str.endswith( )

def reverse():

str="my name is wangzt"

out=""

li=list(str)

print(li)

li.reverse()

out="".join(li)

# for i in range(len(li) , 0 , -1 ):

# out += "".join( li[i-1])

# out+=li[i-1]

print(out)

#strftime時間到字串 strptime字串到時間

def timeandstr():

#時間到字串的轉換

print(time.strftime("%y-%m-%d" , time.localtime()))

k=(1,2,3)

print( type( k ))

#字串轉換為時間

t=time.strptime("2018-9-9", "%y-%m-%d")

t2=time.mktime( t)#時間的元組轉換為時間戳

print( t2 )

print(time.ctime( t2 ) )#毫秒時間戳轉換為時間型別

print(time.localtime()[:6] )

#正規表示式查詢比較費時 ,如果多次查詢用compie編譯返回pattern物件然後在匹配

def testzz():

s="hello word"

s2="你好 world2"

print(re.findall(r"^hello", s ))

print(re.findall(r"^hello", s,re.i )) #hello開頭的單詞

print(re.findall("word$", s,re.i )) #word結束的單詞

print(re.findall(r"\b\w+\b", s,re.i )) #匹配所有單詞

#替換功能

print(re.sub("hello", "hi",s ))

print(re.sub("hello", "hi", s[-4:] ))

#subn使用

print("匹配字母數字:"+ re.sub(r"\w", "hi", s2 ))

print("subn 匹配字母數字:"+ str(re.subn(r"\w", "hi", s2 ) ) )#返回 帶有匹配次數 元組

#p=re.compile(r"(abc)\1")

m=p.match("abcabcabc")

print(m.group(0))

print(m.group())

print(m.groupdict().keys( ))

print(m.groupdict().values( ))

print(m.re.pattern )

if __name__ == '__main__':

# format()

# join()

# reverse()

# timeandstr()

testzz()

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...