用JavaScript正则表达式解析自定义数据
在js变量用JavaScript正则表达式解析自定义数据,javascript,regex,Javascript,Regex,在js变量var str MZ 09/10/2020 Zvwi‡L AbywôZ MCQ Test G DËxY© cÖv_©x‡`i ‡ivj b¤^‡ii ZvwjKv t (cÖKvwkZ djvd‡j †Kv‡bv Kvi‡Y †Kv‡bv ms‡kva‡bi cÖ‡qvRb n‡j KZ©„cÿ Zv ms‡kva‡bi AwaKvi msiÿY K‡i) 9007 1027 1028 1029 7038 8040 1054 1055 0058 3062 1067 1069 3078
var str
MZ 09/10/2020 Zvwi‡L AbywôZ MCQ Test G DËxY© cÖv_©x‡`i ‡ivj b¤^‡ii ZvwjKv t
(cÖKvwkZ djvd‡j †Kv‡bv Kvi‡Y †Kv‡bv ms‡kva‡bi cÖ‡qvRb n‡j KZ©„cÿ Zv ms‡kva‡bi AwaKvi msiÿY K‡i)
9007 1027 1028 1029
7038 8040 1054 1055
0058 3062 1067 1069
3078 7097 1098 1106 = 16 Rb Kvi‡Y †Kv‡bv ms‡kva‡bi cÖ‡qvRb 3457,00867,1122 jtukh $3308
我只想解析数组中从9007到1106(before=16rb)的所有4位数值
[9007,1027,1028,1029,7038,8040,1054,1055,0058,3062,1067,1069,3078,7097,1098,1106]
我尝试了str.match(/\d{4}/g)但是它会给我所有的4位数字值和2020,空值和意外的结果。什么是可预测的模式?如果它像“两边都有空格的四位数字”一样简单,那么您可以使用类似于
/(?您可以匹配字符串开头的四位数字的部分,然后在空格字符上拆分
^\d{4}(?:\s+\d{4})+(?= = \d+ Rb\b)
^
字符串的开头
\d{4}
匹配4位数字
(?:\s+\d{4})+
重复匹配1+空格字符和4个数字字符
(?==\d+Rb\b)
正向前瞻,断言直接在右边的是空格,=
1+位和Rb
const regex=/^\d{4}(?:\s+\d{4})+(?==\d+Rb\b)/gm;
const str=`MZ 09/10/2020 Zvwi-L AbywôZ MCQ测试G DËxY©cÖvúx‡\`i‡ivj b ^ ii ZvwjKv t
(cÖkvwkzdjvd‡j†Kv‡bv Kvi‡Y†Kv‡bv ms‡kva‡bi cÖqvRb n‡j KZ‡cÿZv ms‡kva‡bi AwaKvi msi