![如何获取“expr match”来提取冒号分隔的键值对?](https://linux22.com/image/38388/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E2%80%9Cexpr%20match%E2%80%9D%E6%9D%A5%E6%8F%90%E5%8F%96%E5%86%92%E5%8F%B7%E5%88%86%E9%9A%94%E7%9A%84%E9%94%AE%E5%80%BC%E5%AF%B9%EF%BC%9F.png)
给定:myvar="present-value: 1"
,我期望expr match "$myvar" '\([0-9]\)'
输出1
.但是,它会输出空白并以非零状态代码退出,指示不匹配。
我怎样才能让它匹配?
答案1
这对我有用
myvar="present value: 4"
expr match "$myvar" '.*\([0-9]\)'
输出:
4
答案2
根据exper
手册页,match
适用于anchored pattern match of REGEXP in STRING
. REGEX 锚定到 STRING 的两端,因此它不能只匹配子字符串。