gpt4 book ai didi

javascript - 正则表达式捕获包含;(分号)的字符串

转载 作者:行者123 更新时间:2023-12-02 23:46:23 36 4
gpt4 key购买 nike

我需要从 HTML 中的 javascript 代码获取分配的变量名称和值。

例如有html代码:

<html>
<head>~~</head>
<body>
<div>contents</div>
<script>
var value1 = 55;var value2= 27;
var value3 = 'T';var value4 = "FIT#$%SIZE";
var value5 = '{\"P00000WJ000E\":{\"stock_price\":\"0.00\",\"use_stock\":true,\"use_soldout\":\"T\",\"is_display\":\"T\",\"is_selling\":\"T\",\"option_price\":79000,\"option_name\":\"FIT#$%SIZE\",\"option_value\":\"NOBLE-44\",\"stock_number\":26,\"option_value_orginal\":[\"NOBLE\",\"44\"],\"use_stock_original\":\"T\",\"use_soldout_original\":\"T\",\"use_soldout_today_delivery\":\"F\",\"is_auto_soldout\":\"F\",\"is_mandatory\":\"T\",\"option_id\":\"000E\",\"is_reserve_stat\":\"N\",\"item_image_file\":null,\"origin_option_added_price\":\"0.00\"}}';
var value6 = '1';
var value7 = 'string;must-catch';
var value8 = 8;
var value9 = 'S';
var value10 = 'T';
</script>
</body>
</html>

预期的事情是:

result = {
value1: 55,
value2: 27,
value3: 'T',
value4: "FIT#$%SIZE",
...
}

在我的环境中,如果没有正则表达式,就无法使用另一个解析器工具。因此尝试几乎涵盖以下内容:

var\s(\w+)\s?\=\s?(\d+|\"[^;]*\"|\'[^;]*\')\s?\;

enter image description here

结果已经出现,但是,我还需要捕获包含分号的字符串。有什么想法吗?

最佳答案

您可以不使用 [^;]* 匹配分号,而是匹配 [^\n'] 而不匹配换行符,并将单引号或双引号添加到它[^\n"]

var\s(\w+)\s?\=\s?(\d+|\"[^\n"]*\"|\'[^\n']*\')\s?\;
^^^ ^^^

如果您确实想匹配换行符,您可以从 negated character class 中省略它。例如 [^"]*[^']*

Regex demo

关于javascript - 正则表达式捕获包含;(分号)的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55843013/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com