Sed “如何匹配”;逗号周围的数字;和塞德?
我想在以下字符串中匹配12345:ADF99FGL12345QSDFM34 在一般情况下,我有一个带有逗号的数字(价格),在一个包含数字、字母和其他符号的字符串中,但没有其他逗号。我想告诉sed提取价格,也就是说,逗号前后的所有数字,以及逗号 我找到的最接近的表达是: echo ADF99FGL12345QSDFM34 | sed“s/[^0-9]*\([0-9]+,[0-9]*\)[^0-9]*/\1/” 谢谢你Bash 3.2+Sed “如何匹配”;逗号周围的数字;和塞德?,sed,Sed,我想在以下字符串中匹配12345:ADF99FGL12345QSDFM34 在一般情况下,我有一个带有逗号的数字(价格),在一个包含数字、字母和其他符号的字符串中,但没有其他逗号。我想告诉sed提取价格,也就是说,逗号前后的所有数字,以及逗号 我找到的最接近的表达是: echo ADF99FGL12345QSDFM34 | sed“s/[^0-9]*\([0-9]+,[0-9]*\)[^0-9]*/\1/” 谢谢你Bash 3.2+ $ var="adf99fgl12,345qsdfm34" $
$ var="adf99fgl12,345qsdfm34"
$ [[ $var =~ '(.[^0-9]*)([0-9]*,[0-9]*)(.[^[0-9]*)' ]]
$ echo ${BASH_REMATCH[2]}
12,345
用
grep
代替sed
怎么样
echo adf99fgl12,345qsdfm34 | grep -Eo '[0-9]+,[0-9]*'
要查找文本,通常最好使用grep:
echo uaiuiae12,3456udeaitentu676 | grep -o -E '([[:digit:]]+,[[:digit:]]+)'
- -E将打开扩展正则表达式
- -o将只输出匹配本身