我试图创建一个正则表达式来捕获行中的第一个数字和最后一个数字,但我对最后一个有问题:
这些线条如下:
00005 SALARIO MENSAL 17030 36.397.291,92 36.397.291,92
00010 HORAS TRABALHADAS 0798 19.731,93 19.731,93
这是我的正则表达式:
(^\d+).*(\d)
正如您在此处所见:http://regexr.com/3crbt未按预期工作。我可以得到第一个,但最后一个只是最后一个。
谢谢!
答案 0 :(得分:0)
我尝试了下面的一个:
(^(\ d +))|(\ d + $)
它似乎适用于regexr.com。但是匹配它们可能需要一些假设,即每条线至少有两个数字。
答案 1 :(得分:0)
您可以使用
/^(\d+).*?(\d+(?:[,.]\d+)*)$/gm
请参阅regex demo
正则表达式匹配:
^
- 行的开头(\d+)
- 将1个或多个数字捕获到第1组.*?
- 匹配除换行符之外的任何字符,尽可能少的(\d+(?:[,.]\d+)*)
- 一个或多个数字后跟零个或多个,
或.
序列,后跟一个或多个数字(第2组)$
- 字符串 /g
修饰符可确保我们获得所有匹配,/m
修饰符分别使^
和$
匹配行的开始和结束
答案 2 :(得分:-2)