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. java - public <T> T findOne(T record) 這是什么意思2. css - 關(guān)于ul的布局3. javascript - 前端開(kāi)發(fā) 本地靜態(tài)文件頻繁修改,預(yù)覽時(shí)的緩存怎么解決?4. android - 優(yōu)酷的安卓及蘋(píng)果app還在使用flash技術(shù)嗎?5. docker不顯示端口映射呢?6. mysql數(shù)據(jù)庫(kù)每次查詢是一條線程嗎?7. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件8. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?9. 如何分別在Windows下用Winform項(xiàng)模板+C#,在MacOSX下用Cocos Application項(xiàng)目模板+Objective-C實(shí)現(xiàn)一個(gè)制作游戲的空的黑窗口?10. 小程序怎么加外鏈,語(yǔ)句怎么寫(xiě)!求救新手,開(kāi)文檔沒(méi)發(fā)現(xiàn)
