Sed “如何匹配”;逗号周围的数字;和塞德?

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" $

我想在以下字符串中匹配12345:ADF99FGL12345QSDFM34

在一般情况下,我有一个带有逗号的数字(价格),在一个包含数字、字母和其他符号的字符串中,但没有其他逗号。我想告诉sed提取价格,也就是说,逗号前后的所有数字,以及逗号

我找到的最接近的表达是:

echo ADF99FGL12345QSDFM34 | sed“s/[^0-9]*\([0-9]+,[0-9]*\)[^0-9]*/\1/”

谢谢你

Bash 3.2+

$ 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将只输出匹配本身

您的解决方案有什么问题?根本不起作用(试试看)