正则表达式只有 14 个数字

Regex only 14 numbers

我有以下文字:

DiretorioXmlImpressao=C:\Program Files (x86)\TESTE\XmlImpressao\08187168000160\

我想select除了CNPJ(文末的14个字符的句子)之外的所有内容,所以我尝试了以下正则表达式:

DiretorioXmlImpressao=[^0-9]+

返回:

DiretorioXmlImpressao=C:\Program Files (x

但我预计:08187168000160


对不起大家,我对正则表达式有一些经验,我只是不太能表达自己。

我实际上想这样做 return:

DiretorioXmlImpressao=C:\Program Files (x)\TESTE\XmlImpressao\

因为我只想要 14 个字符和 \,因为我可以在这个替换中使用。当路径中有这样的数字时,这是有效的 "x86"。

regexp_replace(teste,'DiretorioXmlImpressao=[^0-9]+',E'DiretorioXmlImpressao=P:\TESTE\XmlImpressao\','ig');

我的正则表达式和替换的最终预期结果如下

DiretorioXmlImpressao=P:\TESTE\XmlImpressao\08187168000160\

谢谢!

使用此模式:

/^(.*)([^\]+\?)$/

它将return除结尾部分作为第一组匹配,结束部分作为第二组匹配。

如果您不想要第二个匹配的部分,请将第二组更新为:

/^(.*)(?:[^\]+\?)$/

我还没有找到一个有品味的方法来做到这一点而不需要匹配组。

select all but the 14-character sentence at the end of the text

对我来说意味着这个(好吧,加上最后的反斜杠,正如我假设你想要的那样):

/^(.*)[0-9]{14}\$/

我已经按照 bobble bubble 的说法进行了测试

DiretorioXmlImpressao=.*\D(?=\d)

它像我想要的那样工作

DiretorioXmlImpressao=C:\Program Files (x86)\TESTE\XmlImpressao\

谢谢大家!