Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 删除主域之前或正斜杠之后的任何内容_Regex_Linux_Shell - Fatal编程技术网

Regex 删除主域之前或正斜杠之后的任何内容

Regex 删除主域之前或正斜杠之后的任何内容,regex,linux,shell,Regex,Linux,Shell,如何从下面的文本输入中提取域名?我试过了,但没有达到预期效果: grep -oP '(?<=[.])\w+(?=[.])' 所需输出: netgear.com arlo.com netgear.com accellion.net arkoselabs.com 感谢谷歌,我找到了很多解决方案,我试着设计自己的正则表达式 ^((http[s]?\ftp):\/)?\/([^:\/\s]+)(\/\w+*\/)([\w\-\.]+[^?\s]+)(.*)([\w\-]+)?$ [a-zA-Z

如何从下面的文本输入中提取域名?我试过了,但没有达到预期效果:

grep -oP '(?<=[.])\w+(?=[.])'
所需输出:

netgear.com
arlo.com
netgear.com
accellion.net
arkoselabs.com

感谢谷歌,我找到了很多解决方案,我试着设计自己的正则表达式

^((http[s]?\ftp):\/)?\/([^:\/\s]+)(\/\w+*\/)([\w\-\.]+[^?\s]+)(.*)([\w\-]+)?$

[a-zA-Z0-9-]+\[a-zA-Z]+($|)(?=\/)


awk-F“{print$(NF-1)”。“$NF}”

看起来您不仅试图删除/,实际上还试图从这些URL中提取主域

如果您将输入放在一个名为input.txt的文件中,我在Ubuntu 20.10上可以看到以下内容:

cat input.txt | sed-e's;。。([a-zA-Z0-9-][a-zA-Z0-9-])\1;'

作为简要说明: 域名“parts”(点之间的单词)只能使用数字、字母和破折号作为字符。该模式可以表示为: [a-zA-Z0-9-]*

上面的正则表达式将匹配其中的2个,由一个点分隔,由一个点(可能还有一些字符)进行,并由行尾或不属于前一组的一组字符进行后续。我相信。*的贪婪本质将确保只捕获主域


可能还有更强大的解决方案可用。

company.co.uk
这样的国际域名呢?哦,天哪,我错过了一些东西,我该怎么处理呢。也许试着列出所有在英国注册交易所或其他地方。我认为这个问题太复杂了,一个单一的注册交易所无法明智地处理,特别是在国家方面。。。您可能想考虑使用Python,特别是它可能值得注意的是,只有中间的一个,<代码> [AZ-ZO-9~-] +[[AZ-Z+] +($=(?= \)] < /代码>,做你要问的……谢谢,上面有人问,如果我遇到这个URL,你真的测试了吗?sed:-e expression#1,char 37:'s'命令的RHSI上的引用无效\1,但看起来我有输入错误。编辑并更正了该命令
netgear.com
arlo.com
netgear.com
accellion.net
arkoselabs.com