我正在嘗試使用 Python 3re.findall方法在 HTML 檔案中提取 JavaScript 中定義的整數和變數值。
但是,我有封閉在一個難度不大匹配數字"與\d*和匹配封閉在一個字母數字字串"了。
情況1:
s = """
<script>
var i = 1636592595;
var j = i Number("6876" "52907");
</script>
"""
pattern = r'var j = i Number(\"(\d*)\" \"(\d*)\");'
m = re.findall(pattern, s)
print(m) # Output: []
所需的輸出應包含6876和52907,但[]獲得了一個空串列。
案例2:
s = """
xhr.send(JSON.stringify({
"bm-foo": "AAQAAAAE/////4ytkgqq/oWI",
"pow": j
}));
"""
pattern = r'"bm-foo": \"(\w*)\",'
m = re.findall(pattern, s)
print(m) # Output: []
所需的輸出應包含AAQAAAAE/////4ytkgqq/oWI,但[]獲得了一個空串列。
我可以幫助解釋為什么我的正則運算式模式不匹配嗎?
uj5u.com熱心網友回復:
在第一個正則運算式,你需要逃避 ,(和)。
在第二個正則運算式中,使用[^"]*代替\w*,因為\w與/.
import re
s = """
<script>
var i = 1636592595;
var j = i Number("6876" "52907");
</script>
"""
pattern = r'var j = i \ Number\("(\d*)" \ \"(\d*)\"\);'
m = re.findall(pattern, s)
print(m)
s = """
xhr.send(JSON.stringify({
"bm-foo": "AAQAAAAE/////4ytkgqq/oWI",
"pow": j
}));
"""
pattern = r'"bm-foo": "([^"]*)",'
m = re.findall(pattern, s)
print(m)
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/355939.html
下一篇:用另一組替換一組
