设为首页收藏本站
查看: 71|回复: 0

[PHP] 正则表达式

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2017-5-14 02:44:00 | 显示全部楼层 |阅读模式
    正则表达式使用:
    常用规则:
    一、常用特殊字符: $ 匹配输入字符串的结尾位置。如果设置了 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()
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表