使用正则表达式提取文件内容

使用正则表达式提取文件内容

我有一个链接,我只想返回 www.和.com

例如www.blablabla.com只会返回blablabla

我怎么能这么做呢?当我使用grep '\.[a-zA-Z0-9\.-]*\.' 它给了我.blablabla.

答案1

$ echo "www.blablabla.com" | grep -oP '(?<=\.)[a-zA-Z0-9\.-]*(?=\.)' 
blablabla

-o-- 只打印匹配行的匹配部分

-P-- 使用 Perl 正则表达式

(?<=\.)——在字面上.,又名“积极的后视”之后......

[a-zA-Z0-9\.-]*-- 匹配零个或多个小写和大写字符、数字 0-9、文字.和连字符 ...

(?=\.)-- 后面跟着一个文字.,又名“积极的前瞻”

看到这个有关环顾四周的更多信息的链接。类似的工具https://regex101.com/可以帮助您分解正则表达式。

答案2

sed解决方案:

$ str='Hellowww.hello.comMywww.world.comWorld'

$ echo "$str" | sed -e 's/com/com\n/g' | sed -ne '/.*www\.\(.*\)\.com.*/{ s//\1/p }'
hello
world

相关内容