我正在尝试匹配字符串开头的数字
452MATCHME
用这个简单的正则表达式
/^\d*/
我想要这个结果,保存在一个变量中
452
但是我找不到获取操作结果的方法。我读过 this tutorial , 但它描述了一个数组 BASH_REMATCH
,其中存储了所有 =~
操作的匹配结果。但是,出于某种原因,该数组在我的案例中不存在。我使用的是 bash 版本 4.2.10(1)。
我能想到的唯一其他选项是 grep
,但据我所知,它只能输出与正则表达式匹配的行。
我怎样才能达到我的结果?
最佳答案
var=452MATCHME
echo ${var%%[^0-9]*}
这将从第一个非数字到最后删除。
Bash 参数在大多数情况下都足够了,所以我建议您熟悉它。这是 bash 模式的链接: http://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching
关于regex - 如何在 bash 中执行简单的正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203662/