国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python正則表達式中的括號匹配問題

2019-11-25 18:03:13
字體:
來源:轉載
供稿:網友

問題:

m = re.findall('[0-9]*4[0-9]*', '[4]')
可以匹配到4.
m = re.findall('([0-9])*4([0-9])*', '[4]')
匹配不到4.
這是為什么呢?PS,這個是一個簡化的說明,我要用的正則比這個復雜,所以要用到(),表示一個序列的匹配。
補充一點,我放在notepad++中用的時候,兩種寫法都能匹配出來,不知道為什么python中就不行了。

答案:

python的正則中用()會進行匹配,所以返回結果是['',''],就是兩個()中的匹配。要想達到原來的匹配效果,就是把4匹配出來,有兩種解決方法:

1.最外層加個大括號,變成:m = re.findall('(([0-9])*4([0-9])*)', '[4]'),返回結果的第一個元素就是匹配結果了。
2.去除()的匹配結果返回,在括號前面加入?:,變成m = re.findall('(?:/d)*4(?:/d)*', '[4]'),返回結果就是要匹配的結果了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 获嘉县| 米泉市| 嵊州市| 陵川县| 板桥市| 湖口县| 棋牌| 钟山县| 红河县| 衡南县| 上高县| 兴安县| 澄迈县| 海伦市| 绥江县| 黔南| 凯里市| 工布江达县| 青田县| 文水县| 米泉市| 永川市| 平邑县| 都安| 龙山县| 酒泉市| 城市| 金门县| 清河县| 乐昌市| 汉阴县| 苗栗县| 阿鲁科尔沁旗| 夏邑县| 青田县| 广德县| 定日县| 丹江口市| 衢州市| 松溪县| 屏南县|