正则表达式使用:
常用规则:
一、常用特殊字符:
$ 匹配输入字符串的结尾位置。如果设置了 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()