expr - 管理字符串

expr - 管理字符串

我需要像这样的文本:

A234321=http://www.google..... a normal URL

只提取 URL,去掉第一部分。我想我可以expr这样做,但我找不到正确的方法

我可以使用的整个正则表达式是http:[a-zA-Z0-9/_]+

答案1

我不确定你是否正在寻找这个。看看是否有帮助。

expr 'A234321=http://www.google&x=y' : '^[^=]*=\(.*\)'

答案2

你不需要 expr 。您可以使用 shell 构造${VAR#PATTERN}来扩展为$VAR与剥离的指定模式匹配的最短前缀,${VAR##PATTERN}剥离最长前缀以及${VAR%PATTERN}剥离${VAR%%PATTERN}后缀。

text='A234321=http://www.example.com/wibble'
protocol=${text%%://*}
url=${protocol##*[!a-z]}://${text#*://}

答案3

假设您的文本始终由“=”字符分隔,则会cut为您提供 URL:

url=`echo $text | cut -f 2 -d"="`

基本上,我们在这里剪切文本字段,由=第二个字段分隔并提取。

相关内容