我需要找到倒数第一次出现的数字
例如
INPUT:
32 ABSTREET 5566 BC
预期的输出:
5566
我尝试了一半,但似乎没有用:
^([^[a-z]]+)
答案 0 :(得分:1)
以下正则表达式从最后一个数字到字符串结尾匹配,但最后一个数字,即您想要的"数字" s,将被放置在第1组中。您通常可以访问他们使用\1
,但这取决于您用来评估正则表达式的内容。
(\d+)\D*$
另一种只能匹配您想要但更复杂的解决方案是:
\d+(?=\D+$)
它使用正向前瞻来确保字符串末尾没有数字。
答案 1 :(得分:0)
使用sed
,您可以:
sed 's/.*\(\<[0-9]\+\).*/\1/'
这将匹配字符串中的最后一个数字。样品用法:
echo "32 ABSTREET 5566 BC" | sed 's/.*\(\<[0-9]\+\).*/\1/'
输出:
5566