Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript正则表达式解析自定义数据_Javascript_Regex - Fatal编程技术网

用JavaScript正则表达式解析自定义数据

用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

在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 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