我正在尝试获取' null之间的任何字符串['和']' ,但对于一些长篇字符串,它立即丢失并打印文本,直到一些随机的']' 但是,如果我缩短那个字符串,它的工作正常,
如何才能直接找到文字,而不是直到某些随机的']'?
例如。
"值":" vale0 [var0]""空[第一]""值":&#34 ; vale2 [VAR1]""值":" vale3 [VAR3]"
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function run(){
code = document.getElementsByTagName("html")[0].innerHTML;
results = code.match(/null\[(\S*)\","/g);
for (i=0;i<results.length;i++) {
value = results[i].match(/null\[(\S*)\","/);
alert (value[1])
}
}
</script>
</head>
<body onload="run()">
registerFragment("qweeqeqw","null[country- name-IR_1]","AI_0_1264":"Anguilla[country-name-AI_18096]</body>
</body>
</html>
答案 0 :(得分:0)
看起来你的正则表达式有点不完整。如果您想要两个已知序列之间的最小匹配字符,请将?
运算符添加到*
。这将使*
运算符&#34;非贪婪。&#34;
null\[(\S*?)\","
但是,在此版本中,结束括号将包含在匹配的组中。如果要将结束括号保留在匹配项之外,请同时添加该字符。 (此处,我还会在第一个\
之前替换"
,因为没有必要逃避"
。)
null\[(\S*?)]","
而且,此时,您甚至不需要检查","
序列,因为结束]
应该自行完成工作:
null\[(\S*?)]