python2.7 - python 正則前瞻 后瞻 無法匹配到正確的內容
問題描述
使用 python 來測試正則前瞻 后瞻,但是怎么都沒有像官網說的那樣。
題目解析 html onclick=''里面的字符串,返回調用的函數名和參數list
表達式根據文檔寫的表達式: https://docs.python.org/2/lib...(?<=s*javascripts*:s*)([w]+)((.+))(?=s*;.*)
代碼def parse_js_func(txt): ''' 從 onclick 的值中解析各種綁定時間 返回 函數名 和 參數,只支持單個函數綁定的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)'應該返回 [’func’,11111]
問題解答
回答1:你那個正則是你自己寫的吧? 向后查找要求要明確pattern的長度, 試下這個正則能不能滿足要求: (1+)(([’'w,]+)?)
'’: ?相關文章:
1. python - 請問matplotlib.pyplot.save的路徑如何更改2. python - Shadowsocks的從剪貼板導入URL功能是怎么把剪貼板中復制的ss://XXXXXXXXXX這種鏈接轉換成具體賬號信息的?3. javascript - js 對中文進行MD5加密和python結果不一樣。4. mysql - 我用SQL語句 更新 行的時候,發現全部 中文都被清空了,請問怎么解決?5. python把第x列數據寫入第x個文件6. python小白,問一個關于可變類型和不可變類型底層的問題7. python - Django前臺url未能正確訪問方法求助?8. 數據庫 - mysql boolean型無法插入true9. mysql - SQL問個基礎例子,書上的,我怎么看都看不懂..誰幫我解釋一下第2個為什么和第1個一樣?10. mysql服務無法啟動1067錯誤,誰知道正確的解決方法?
