Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 - Fatal编程技术网

Regex 正则表达式以匹配特定域的子域,不带路径

Regex 正则表达式以匹配特定域的子域,不带路径,regex,Regex,我希望正则表达式能够找到以下类型的字符串: 在哪里 abc->abc始终保持abc 任何->它可以是任何字符串 tld->它可以是任何tld顶级域,如.com.net.co.in.co.uk等 注意:url结尾不得包含任何其他内容,表示不可接受 注意:由于tld列表是一个很长的列表,并且仍然有可能您忘记包含一些tld,因此我不想在正则表达式中写入每个tld以检查是否存在tld。相反,我希望有一个正则表达式来检查tld的以下内容: abc之后,有一段时间 在这段时间之后。至少有一个字符 有相当多的

我希望正则表达式能够找到以下类型的字符串:

在哪里

abc->abc始终保持abc

任何->它可以是任何字符串

tld->它可以是任何tld顶级域,如.com.net.co.in.co.uk等

注意:url结尾不得包含任何其他内容,表示不可接受

注意:由于tld列表是一个很长的列表,并且仍然有可能您忘记包含一些tld,因此我不想在正则表达式中写入每个tld以检查是否存在tld。相反,我希望有一个正则表达式来检查tld的以下内容:

abc之后,有一段时间

在这段时间之后。至少有一个字符


有相当多的TLD,它们的数量正在增长。你可以用

^http://[\w.-]+\.abc\.(com|net|co\.in|....  )/?$
但这必须定期维持。 仅将[^/]*用于TLD可能更容易。这看起来像

^http://[\w.-]+\.abc\.[^/]+/?$

有相当多的TLD,它们的数量正在增长。你可以用

^http://[\w.-]+\.abc\.(com|net|co\.in|....  )/?$
但这必须定期维持。 仅将[^/]*用于TLD可能更容易。这看起来像

^http://[\w.-]+\.abc\.[^/]+/?$
可能会有所不同,这取决于您使用的正则表达式方言


可能会有所不同,具体取决于您使用的是哪种正则表达式方言。

首先确定您将处理哪种类型的数据:这些是基于行的记录,例如XML,它们可能是其他任何类型的记录吗?这将告诉你如何锚定比赛。如果您可以使用^来锚定它们,那么这会更容易。在http://和顶级域之间是否需要可变数量的字符串?如果不想写出顶级域,请使用

\.[a-z]\{2,3\}
具体形式取决于您使用的是基本正则表达式sed、grep还是扩展正则表达式awk,还是与Perl兼容的正则表达式


你已经试过什么了?您是如何测试它的?

首先确定您将处理哪种类型的数据:这些是基于行的记录,或者XML,例如,它们可能是其他任何类型的记录吗?这将告诉你如何锚定比赛。如果您可以使用^来锚定它们,那么这会更容易。在http://和顶级域之间是否需要可变数量的字符串?如果不想写出顶级域,请使用

\.[a-z]\{2,3\}
具体形式取决于您使用的是基本正则表达式sed、grep还是扩展正则表达式awk,还是与Perl兼容的正则表达式

你已经试过什么了?您是如何测试它的?

^/]+$

也为您分组:

我强烈建议使用gskinner.com提供的RegEx工具

^^/]+$

也为您分组:

我强烈建议使用gskinner.com提供的RegEx工具


你的意思是abc是常数吗?你的意思是abc是常数吗?子域名中不允许使用下划线吗?不。它们在很久以前是被允许的,但现在被禁止了。另外,我认为tld中不太可能使用破折号或数字,所以我把它们放在那里了。子域名中不允许使用下划线吗?不。它们在很久以前是被允许的,但现在被禁止了。另外,我认为tld中不太可能使用破折号或数字,所以我把它们放在那里了。@Jens如果我使用^http://[^/]+\.abc\.[^/]+/?$来让我们不必考虑url可以包含哪些字符,你会怎么说。@Yatendra:听起来不错。如果您想允许以下内容,您可能需要了解有关使用^http://[^/]+\.?abc\.[^/]+/?$的内容http://abc.com.@Jens如果我使用^http://[^/]+\.abc\.[^/]+/?$让我们不必考虑url可以包含哪些字符,你会怎么说。@Yatendra:听起来不错。如果您想允许以下内容,您可能需要了解有关使用^http://[^/]+\.?abc\.[^/]+/?$的内容http://abc.com.