python2.7 - python 正則前瞻 后瞻 無(wú)法匹配到正確的內(nèi)容
問(wèn)題描述
使用 python 來(lái)測(cè)試正則前瞻 后瞻,但是怎么都沒(méi)有像官網(wǎng)說(shuō)的那樣。
題目解析 html onclick=''里面的字符串,返回調(diào)用的函數(shù)名和參數(shù)list
表達(dá)式根據(jù)文檔寫(xiě)的表達(dá)式: https://docs.python.org/2/lib...(?<=s*javascripts*:s*)([w]+)((.+))(?=s*;.*)
代碼def parse_js_func(txt): ''' 從 onclick 的值中解析各種綁定時(shí)間 返回 函數(shù)名 和 參數(shù),只支持單個(gè)函數(shù)綁定的JS listener :param txt: :return: ''' func = None param = None if txt and 2 <= len(txt) <= 200:pattern = ’(?<=s*javascripts*:s*)([w]+)((.+))(?=s*;.*)’# pattern = ’(s*javascripts*:s*)?([w]+)((.+))(s*;.*)?’m = re.match(ur’’ + pattern, u’’ + txt, re.I | re.M)if m and m.lastindex >= 3: func = m.group(2) txt2 = m.group(3) if len(txt2.split(’,’)) > 1:param = [str(x).strip(’’'’) for x in txt2.split(’,’)] else:param = str(txt2).strip(’’'’) return func, param用例
onclick='javascript:func(’a’,1,2,3)' 返回 [’func’,[’a’,1,2,3]]
onclick='func(11111)'應(yīng)該返回 [’func’,11111]
問(wèn)題解答
回答1:你那個(gè)正則是你自己寫(xiě)的吧? 向后查找要求要明確pattern的長(zhǎng)度, 試下這個(gè)正則能不能滿足要求: (1+)(([’'w,]+)?)
'’: ?相關(guān)文章:
1. mysql - AttributeError: ’module’ object has no attribute ’MatchType’2. php自學(xué)從哪里開(kāi)始?3. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題4. MySQL客戶端吃掉了SQL注解?5. 求大神幫我看看是哪里寫(xiě)錯(cuò)了 感謝細(xì)心解答6. javascript - JS設(shè)置Video視頻對(duì)象的currentTime時(shí)出現(xiàn)了問(wèn)題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...7. javascript - 圖片能在網(wǎng)站顯示,但控制臺(tái)仍舊報(bào)錯(cuò)403 (Forbidden)8. python小白的基礎(chǔ)問(wèn)題 關(guān)于while循環(huán)的嵌套9. phpstady在win10上運(yùn)行10. python - Django分頁(yè)和查詢參數(shù)的問(wèn)題
