正規表示式使用:
常用規則:
一、常用特殊字元:
$ 匹配輸入字串的結尾位置。如果設定了 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...