我是Regex的新手,我正在努力寻找模式中的字符串。
我有这个字符串:
{"linha":""},
{"linha":" REDE GETNET"},
{"linha":" SANTANDER"},
{"linha":""},
{"linha":"20/04/15 09:07:32 AUT:006299 DOC:000235"},
{"linha":"EC:000000000370484 TERM: T0385403 M"},
{"linha":"CV:010000024 CAIXA:00003333"},
{"linha":""},
{"linha":"CARTAO ************2125"},
{"linha":""},
{"linha":" CREDITO A VISTA"},
{"linha":"VALOR: 12,00"},
{"linha":""},
{"linha":" ______________________________"},
{"linha":" ASSINATURA"},
{"linha":""},
{"linha":""},
{"linha":"CUPOM: 00000000000000 MAC: 9235"},
{"linha":"NSU_CTF: 001899 LOJA: 0019 PDV: 897"},
{"linha":""},
{"linha":""}
我想找到之间的发生:
{"linha":
和
},
在冒号后只用双引号获取字符串。
到目前为止,我的正则表达式是:
(\{".*(linha).[:])
而且只有
{"linha":
有人能帮助我吗?我打算用javascript来做。
答案 0 :(得分:1)
据我所知,该示例是JSON,因此您应该使用JSON方法来获取所需的数据。但是,如果由于任何原因你被“强迫”使用正则表达式,那么这样的事情可能会起作用:
/\{\s*\"linha\"\s*\:\s*\"(.*)\"\}/g
您可以对其进行测试here,并且对于(至少){"linha": " \" \" "}
它也是健壮的,并且它也匹配{ "linha": ""}
。当然,在某些情况下,此正则表达式无法正常工作(例如,它不会获取数值,只能获取字符串)。
因此,再次,您应该真正检查JSON。这是惊人! :)
答案 1 :(得分:1)
Javascript中的解决方案:
使用Regex:
var input_str = '{"linha":""},{"linha":" REDE GETNET"},{"linha":" SANTANDER"},{"linha":""},{"linha":"20/04/15 09:07:32 AUT:006299 DOC:000235"},{"linha":"EC:000000000370484 TERM: T0385403 M"},{"linha":"CV:010000024 CAIXA:00003333"},{"linha":""},{"linha":"CARTAO ************2125"},{"linha":""},{"linha":" CREDITO A VISTA"},{"linha":"VALOR: 12,00"},{"linha":""},{"linha":" ______________________________"},{"linha":" ASSINATURA"},{"linha":""}, {"linha":""},{"linha":"CUPOM: 00000000000000 MAC: 9235"},{"linha":"NSU_CTF: 001899 LOJA: 0019 PDV: 897"},{"linha":""},{"linha":""}'
var re = new RegExp('linha*\":(".*")', 'g');
var myArray;
while ((myArray = re.exec(input_str)) !== null) {
var msg = 'Found ' + myArray[1];
console.log(msg);
}
使用JSON.parse :请注意我已添加[]以将字符串包装为JSON数组。
var input_str1 = '[{"linha":""},{"linha":" REDE GETNET"},{"linha":" SANTANDER"},{"linha":""},{"linha":"20/04/15 09:07:32 AUT:006299 DOC:000235"},{"linha":"EC:000000000370484 TERM: T0385403 M"},{"linha":"CV:010000024 CAIXA:00003333"},{"linha":""},{"linha":"CARTAO ************2125"},{"linha":""},{"linha":" CREDITO A VISTA"},{"linha":"VALOR: 12,00"},{"linha":""},{"linha":" ______________________________"},{"linha":" ASSINATURA"},{"linha":""}, {"linha":""},{"linha":"CUPOM: 00000000000000 MAC: 9235"},{"linha":"NSU_CTF: 001899 LOJA: 0019 PDV: 897"},{"linha":""},{"linha":""}]'
var parsed_json = JSON.parse(input_str1);
console.log(parsed_json);
parsed_json.forEach(x => console.log(x.linha))