Regex 如何抓住字符串中“/”后面的部分?

Regex 如何抓住字符串中“/”后面的部分?,regex,bash,grep,substring,Regex,Bash,Grep,Substring,下面是我的Bash代码: echo "Some string/Another string" | grep -o "\/.*" 这将返回另一个字符串 但是我不希望/包含在echo返回的值中 如何更改正则表达式以实现这一点 编辑:我想匹配/后面的所有内容,不管后面是什么“另一个字符串”并不总是在sed的/后面: $ sed 's/.*\/\(.*\)/\1/' <<< "Some string/Another string" Another string 如果您有支持PCRE

下面是我的Bash代码:

echo "Some string/Another string" | grep -o "\/.*"
这将返回另一个字符串

但是我不希望
/
包含在
echo
返回的值中

如何更改正则表达式以实现这一点

编辑:我想匹配
/
后面的所有内容,不管后面是什么<代码>“另一个字符串”并不总是在sed的
/

后面:

$ sed 's/.*\/\(.*\)/\1/' <<< "Some string/Another string"
Another string

如果您有支持PCRE的GNU Grep,那么您可以使用
\K
来忘记匹配

$ echo "Some string/Another string" | grep -oP "\/\K.*"
Another string

通过参数展开

$ string='Some string/Another string'
$ echo "${string#*/}"
Another string
$ awk -F/ '{print $2}' <<< "$string"
Another string
使用
#
展开将从展开参数的开头删除其后的内容

使用awk

$ string='Some string/Another string'
$ echo "${string#*/}"
Another string
$ awk -F/ '{print $2}' <<< "$string"
Another string

$awk-F/'{print$2}'您可以使用cut命令执行此操作:

如果希望字符串介于第一次和第二次出现的
/

cut -d '/' -f 2 <<< "Some string/Another string/abc"
output: Another string

对不起,我应该说得更具体些。我想匹配
/
后面的所有内容,不管后面是什么<代码>“另一个字符串”
并不总是在
/
更新我的答案之后。详细说明
\K
只是让左手边成为后面看的方式:
(?)?