当前位置:Gxlcms > Python > 正则表达式

正则表达式

时间:2021-07-01 10:21:17 帮助过:52人阅读

正则表达式使用:

常用规则:

一、常用特殊字符:
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
.  匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
[ ]  标记一个中括号表达式的开始。要匹配 [,请使用 \[。
?  匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\   将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配换行符。序列 ‘\\' 匹配 “\”,而 ‘\(' 则匹配 “(”。
^  匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{ }   标记限定符表达式的开始。要匹配 {,请使用 \{。
|   指明两项之间的一个选择。要匹配 |,请使用 \|。
二、常用限定符:
*  +  ? {m }{m,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()

人气教程排行