我这里有一个文本文档:http://regexr.com/3d7t5
使用Javascript(nodeJS),我需要匹配以C.O开头的每个短语中的三位数字。 :即001,003,036等
我尝试过使用非捕获组但由于某些原因我的查询无效:
/([0-9]+)(?:C.O. : \d\d\d)?/g
答案 0 :(得分:1)
使用此模式:
/\bC\.O\. : (\d\d\d)\b/g
然后对字符串执行exec
并获取第一个捕获组的内容。
var rx = /\bC\.O\. : (\d\d\d)\b/g
var s = "C.O. : 001 CALI\nC.O. : 003 MIAMI\nC.O. : 026 TEXAS";
for (var m = rx.exec(s); m; m = rx.exec(s)) {
document.write(m[1]+' ');
}
编辑:如果空格的数量和种类可能有所不同,您当然可以调整正则表达式来处理这个问题:
/\bC\.O\.\s*:\s*(\d\d\d)\b/g
答案 1 :(得分:0)
如果您只想匹配3位数字
/\d{3}/gm
就是你所需要的。但我认为你需要这样的东西:
/^C\.O\..*?(\d{3})/gm
或
/^C\.O\..*?:\s*(\d{3})/gm
因为turns out quelquecosa遗漏了一两个“小细节”。
正则表达式可能应该是这样的:
/^\|\s+C\.O\.\s+:\s+(\d{3})/gm
这与以下文字中的009
和011
相匹配,但不匹配Total C.O. ...
。
+---------------------------------------------------------------------------------------------------------------------------------------+
| UNO - VER 8.5. HORA : 5:56 PM |
| PAGINA: 14 |
| |
| Empresa : MA |
| C.O. : 009 PALMIRA2 OUTLET Fecha Inicial : 2016/04/16 Hora Inicial: |
| Tipo Inventario : 6 ETIQUETAS Y BOLSAS Fecha Final : 2016/04/16 Hora Final : |
+---------------------------------------------------------------------------------------------------------------------------------------+
|GRUPO DESCRIPCION U.M. CANTIDAD BRUTO DESCUENTOS IMPUESTOS T O T A L |
+---------------------------------------------------------------------------------------------------------------------------------------+
01 CLASIFICACION DANE UNI 45.000 ** OBSEQUIO **
-----------------------------------------------------------------------------------------------------------------------------------------
Total Inventario ETIQUETAS Y BOLSAS 45.000 0 0 0 0
Total Inventario ETIQUETAS Y BOLSAS 45.000 0 0 0 0
-----------------------------------------------------------------------------------------------------------------------------------------
Total C.O. PALMIRA2 OUTLET 1,001,346 0 160,254 1,161,600
Total C.O. PALMIRA2 OUTLET 1,001,346 0 160,254 1,161,600
+---------------------------------------------------------------------------------------------------------------------------------------+
| UNO - VER 8.5. HORA : 5:56 PM |
| PAGINA: 15 |
| |
| Empresa : MA |
| C.O. : 011 CARTAGO Fecha Inicial : 2016/04/16 Hora Inicial: |
| Tipo Inventario : 3 PRODUCTO TERMINADO Fecha Final : 2016/04/16 Hora Final : |
+---------------------------------------------------------------------------------------------------------------------------------------+
|GRUPO DESCRIPCION U.M. CANTIDAD BRUTO DESCUENTOS IMPUESTOS T O T A L |
+---------------------------------------------------------------------------------------------------------------------------------------+
01 CLASIFICACION DANE UNI 26.000 853,537 225,943 100,415 728,009
-----------------------------------------------------------------------------------------------------------------------------------------
Total Inventario PRODUCTO TERMINADO 26.000 853,537 225,943 100,415 728,009
Total Inventario PRODUCTO TERMINADO 26.000 853,537 225,943 100,415 728,009