Как заставить `expr match` извлечь пару ключ-значение, разделенную двоеточием?

Как заставить `expr match` извлечь пару ключ-значение, разделенную двоеточием?

Учитывая: 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, поэтому он не может просто соответствовать подстроке.

Связанный контент