【发布时间】:2016-03-11 22:29:11
【问题描述】:
我需要确认我的文本的一部分之间是否存在一个\s01\s,所以我需要一个分隔符。
我有这么大的文字:
...
RESUMO DO FECHAMENTO - EMPRESA MODALIDADE : "BRANCO"-RECOLHIMENTO AO FGTS E DECLARAÇÃO À PREVIDÊNCIA 858600000039 672701801102 107527053051 769205500015 Nº ARQUIVO: NmDA0FH71Ig0000-3 Nº DE CONTROLE: BdmBPppCuyu0000-1 INSCRIÇÃO: 57.692.055/0001-27 COMP: 11/2010 COD REC:115 COD GPS: 2100 FPAS: 612 OUTRAS ENT: 3139 SIMPLES: 1 RAT: 3.0 FAP: 1.57 RAT AJUSTADO: 4.71 TOMADOR/OBRA: INSCRIÇÃO: LOGRADOURO: AVENIDA ALEXANDRE COLARES 500 3 ANDAR BAIRRO: VILA JAGUARA CNAE PREPONDERANTE: 4930202 CIDADE: SAO PAULO UF: SP CEP: 05106-000 CNAE: 4930202 CAT QUANT REMUNERAÇÃO SEM 13º REMUNERAÇÃO 13º BASE CÁL PREV SOC BASE CÁL 13º PREV SOC 07 2 1.100,35 429,09 1.100,35 0,00
...
在这篇特别的文章中,我需要确认 01 和 07 是否存在,但如果 01 不存在,则正则表达式正试图捕获文本的其他部分,如您在此处看到的:http://regexr.com/3d03m
我怎样才能使正则表达式只在这两个词之间起作用?有可能吗?
正则表达式:(?: RESUMO DO FECHAMENTO - EMPRESA MODALIDADE : "BRANCO")(.*? 01 )(?:.*?(?=TOTAIS:))
【问题讨论】:
-
我不清楚,您要捕获什么文本?你想要的输出是什么?
-
你能举个小样本的例子吗?不能完全掌握你想要什么。
-
在我的文本中,我试图确认 RESUMO DO FECHAMENTO - EMPRESA MODALIDADE : "BRANCO" 和第一个 TOTAL: 之间是否存在 01 和 07,问题是,我还有其他TOTAL 在文本中,所以如果 01 在这两个词之间不存在,正则表达式将尝试与下一个 TOTAL 匹配。
-
那么,demo中的文字应该完全不匹配吧?尝试用
(?:(?!TOTAIS:).)*替换所有.*?。虽然这不是最好的解决方案,但最好使用展开的版本 (.*?-->[^T]*(?:T(?!OTAIS:)[^T]*)*)。 -
是的!现在正在工作,你能给我解释一下吗?而且..这是一个展开的版本??
标签: javascript regex