Regex 如何抓住字符串中“/”后面的部分?
下面是我的Bash代码: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
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
只是让左手边成为后面看的方式:(?)?