我有以下文字:
<td width="300">38.625,00</td>
我只想要输出:38625
我正在使用
[\d,]+
返回30038625,00
我怎样才能选择“第二位和第三位”?
提前谢谢
答案 0 :(得分:1)
echo '<td width="300">38.625,00</td>' \
| sed -nEe 's/.*[^0-9.]([0-9.]+),[0-9]{2}.*/\1/;s/[^0-9]//p'
当然,这是两个替换,但它们都基于正则表达式。
如果您的数字格式为##.###,##
,则可以直接处理,只需一次正则表达式替换:
echo '<td width="300">38.625,00</td>' \
| sed -nEe 's/.*[^0-9]([0-9]+)\.([0-9]+).*/\1\2/p'
答案 1 :(得分:0)
不确定您的情况,但是如果您想要替换 -
查找:(?<=>)(\d+)\.(\d+)(?:,\d*)?(?=</td>)
替换:$1$2
(?<= > )
( \d+ ) # (1)
\.
( \d+ ) # (2)
(?: , \d* )?
(?= </td> )