日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

dreamweaver 正则表达式为属性值加上双引号_Python正则表达式(一)

發布時間:2025/3/15 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dreamweaver 正则表达式为属性值加上双引号_Python正则表达式(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python正則表達式

正則表達式是處理字符串的強大工具,擁有獨特的語法和獨立的處理引擎。

我們在大文本中匹配字符串時,有些情況用str自帶的函數(比如find, in)可能可以完成,有些情況會稍稍復雜一些(比如說找出所有“像郵箱”的字符串,所有和chinahadoop相關的句子),這個時候我們需要一個某種模式的工具,這個時候正則表達式就派上用場了。

說起來正則表達式效率上可能不如str自帶的方法,但匹配功能實在強大太多。對啦,正則表達式不是Python獨有的,如果已經在其他語言里使用過正則表達式,這里的說明只需要簡單看一看就可以上手啦。

語法

正則表達書是一個包含眾多語法的技能,相對于“閉卷考試”,大家一定也更喜歡“開卷考試”,這里我們為大家準備了一張python正則表達式速查表,一起來學習一下。

當你要匹配 一個/多個/任意個 數字/字母/非數字/非字母/某幾個字符/任意字符,想要 貪婪/非貪婪 匹配,想要捕獲匹配出來的 第一個/所有 內容的時候,記得這里有個小手冊供你參考。

我們借助于http://regexr.com/ ,來快速帶大家學習一下。

驗證工具

我們最喜愛的正則表達式在線驗證工具之一是http://regexr.com/

可以幫助大家快速學習、練習和鞏固,注意到左側有一些功能列表,也包含很多有用的內容。

挑戰與提升

對于做自然語言處理的同學而言,正則表達式是一個必備的技能,我曾經有半年寫了大量的正則表達式,以至于同事間開玩笑說,只要是符合某種規律或者模式的串,肯定分分鐘能匹配出來。

對于想練習正則表達式,或者短期內快速get復雜技能,or想挑戰更復雜的正則表達式的同學們。 請戳正則表達式進階練習

各位寶寶enjoy yourself

Python正則表達式

re模塊

Python通過re模塊提供對正則表達式的支持。

使用re的一般步驟是

  • 1.將正則表達式的字符串形式編譯為Pattern實例
  • 2.使用Pattern實例處理文本并獲得匹配結果(一個Match實例)
  • 3.使用Match實例獲得信息,進行其他的操作。

In [1]:

# encoding: UTF-8 import re# 將正則表達式編譯成Pattern對象 pattern = re.compile(r'hello.*!')# 使用Pattern匹配文本,獲得匹配結果,無法匹配時將返回None match = pattern.match('hello, AI職場技術分享! How are you?')if match:# 使用Match獲得分組信息print match.group() hello, AI職場技術分享!

re.compile(strPattern[, flag]):

這個方法是Pattern類的工廠方法,用于將字符串形式的正則表達式編譯為Pattern對象。

第二個參數flag是匹配模式,取值可以使用按位或運算符'|'表示同時生效,比如re.I | re.M。

當然,你也可以在regex字符串中指定模式,比如re.compile('pattern', re.I | re.M)等價于re.compile('(?im)pattern')

flag可選值有:

  • re.I(re.IGNORECASE): 忽略大小寫(括號內是完整寫法,下同)
  • re.M(MULTILINE): 多行模式,改變'^'和'$'的行為(參見上圖)
  • re.S(DOTALL): 點任意匹配模式,改變'.'的行為
  • re.L(LOCALE): 使預定字符類 w W b B s S 取決于當前區域設定
  • re.U(UNICODE): 使預定字符類 w W b B s S d D 取決于unicode定義的字符屬性
  • re.X(VERBOSE): 詳細模式。這個模式下正則表達式可以是多行,忽略空白字符,并可以加入注釋。以下兩個正則表達式是等價的:

In [2]:

regex_1 = re.compile(r"""d + # 數字部分. # 小數點部分d * # 小數的數字部分""", re.X) regex_2 = re.compile(r"d+.d*")

Match

Match對象是一次匹配的結果,包含了很多關于此次匹配的信息,可以使用Match提供的可讀屬性或方法來獲取這些信息。

match屬性:

  • string: 匹配時使用的文本。
  • re: 匹配時使用的Pattern對象。
  • pos: 文本中正則表達式開始搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數相同。
  • endpos: 文本中正則表達式結束搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數相同。
  • lastindex: 最后一個被捕獲的分組在文本中的索引。如果沒有被捕獲的分組,將為None。
  • lastgroup: 最后一個被捕獲的分組的別名。如果這個分組沒有別名或者沒有被捕獲的分組,將為None。

match方法:

  • group([group1, …]):
    獲得一個或多個分組截獲的字符串;指定多個參數時將以元組形式返回。group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;不填寫參數時,返回group(0);沒有截獲字符串的組返回None;截獲了多次的組返回最后一次截獲的子串。
  • groups([default]):
    以元組形式返回全部分組截獲的字符串。相當于調用group(1,2,…last)。default表示沒有截獲字符串的組以這個值替代,默認為None。
  • groupdict([default]):
    返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。
  • start([group]):
    返回指定的組截獲的子串在string中的起始索引(子串第一個字符的索引)。group默認值為0。
  • end([group]):
    返回指定的組截獲的子串在string中的結束索引(子串最后一個字符的索引+1)。group默認值為0。
  • span([group]):
    返回(start(group), end(group))。
  • expand(template):
    將匹配到的分組代入template中然后返回。template中可以使用id或g、g引用分組,但不能使用編號0。id與g是等價的;但10將被認為是第10個分組,如果你想表達1之后是字符'0',只能使用g<1>0。

In [14]:

import re m = re.match(r'(w+) (w+)(?P<sign>.*)', 'hello AI職場技術分享!')print "m.string:", m.string print "m.re:", m.re print "m.pos:", m.pos print "m.endpos:", m.endpos print "m.lastindex:", m.lastindex print "m.lastgroup:", m.lastgroupprint "m.group(1,2):", m.group(1, 2) print "m.groups():", m.groups() print "m.groupdict():", m.groupdict() print "m.start(2):", m.start(2) print "m.end(2):", m.end(2) print "m.span(2):", m.span(2) print r"m.expand(r'2 13'):", m.expand(r'2 13') m.string: hello AI職場技術分享! m.re: <_sre.SRE_Pattern object at 0x10b111be0> m.pos: 0 m.endpos: 18 m.lastindex: 3 m.lastgroup: sign m.group(1,2): ('hello', 'hanxiaoyang') m.groups(): ('hello', 'hanxiaoyang', '!') m.groupdict(): {'sign': '!'} m.start(2): 6 m.end(2): 17 m.span(2): (6, 17) m.expand(r'2 13'): hanxiaoyang hello!

總結

以上是生活随笔為你收集整理的dreamweaver 正则表达式为属性值加上双引号_Python正则表达式(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。