我只能在Regex组中匹配什么?
例如,从:
获取some text ... <a href='...'/user/9082/>... </a>
仅来自/user/9082/
的数字:
9082
我尝试了什么:
echo "some text ... <a href='...'/user/9082/>3435435345345</a>" | grep -Eo "/user/([0-9]+)/"
使用sed
。
$ echo "some text ... <a href='...'/user/9082/>3435435345345</a>" |
> sed -E 's|^.*/user/([0-9]+)/.*$|1|'
9082
您说"我也可以使用sed
和其他方法",这意味着您知道sed
是正确的工具,但是您不想使用它。您能详细说明为什么吗?grep
用于搜索,sed
用于格式化。
您可以使用Bash Regex:
str="some text ... <a href='...'/user/9082/>... </a>"
re="/user/([0-9]+)/"
[[ $str =~ $re ]] && echo ${BASH_REMATCH[1]}
使用 grep
echo "some text ... <a href='...'/user/9082/>3435435345345</a>" | grep -o '/user/[0-9]+/'