检索两个字符串之间的字符串

检索两个字符串之间的字符串

我正在尝试提取两个字符串中间的子字符串。我执行这个 grep 命令:

echo "http://www.miweb.es/midoc-87-documento-texto_mf_4150310_1.txt" | grep -Po "(?<=midoc-).*(?=-)"

Result
87-documento

但我只想获得“87”而不是“87-documento”。

谢谢。

答案1

添加一个?after*来切换到非贪婪。

答案2

试试这个:

echo "http://www.miweb.es/midoc-87-documento-texto_mf_4150310_1.txt" | grep -Po "(?<=midoc-).."

我得到这个结果:

[root@tomcat7test ~]# echo "http://www.miweb.es/midoc-87-documento-texto_mf_4150310_1.txt" | grep -Po "(?<=midoc-).."
87
[root@tomcat7test ~]#

相关内容