Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Java 索引0附近挂起元字符的regexp_Java_Regex_Hive - Fatal编程技术网

Java 索引0附近挂起元字符的regexp

Java 索引0附近挂起元字符的regexp,java,regex,hive,Java,Regex,Hive,我对配置单元中的regexp函数有一些问题。 我希望在列表示例中找到顶级域: www.whatever.com www.iam.com.uk mobile.who.com.us 在这种情况下,我应该得到iam的结果,所以我选择反向,并编写正则表达式: *\.([a-z]+)\.([a-z]+)+(\.[a-z]+)?$ 这意味着我只想查看url中的最后2或3项。 但它返回了一个悬而未决的错误。 感谢您的帮助 您似乎总是希望获得URL的第二部分。那么为什么不直接这样做呢 [a-z]+?\.([

我对配置单元中的regexp函数有一些问题。 我希望在列表示例中找到顶级域:

www.whatever.com
www.iam.com.uk
mobile.who.com.us
在这种情况下,我应该得到iam的结果,所以我选择反向,并编写正则表达式:

*\.([a-z]+)\.([a-z]+)+(\.[a-z]+)?$
这意味着我只想查看url中的最后2或3项。 但它返回了一个悬而未决的错误。
感谢您的帮助

您似乎总是希望获得URL的第二部分。那么为什么不直接这样做呢

[a-z]+?\.([a-z]+)?\.
这将延迟检查1个或多个字符。 然后一个。点 然后它缓慢地捕获1个或多个字符,直到一个点。
您的意思是“^”而不是“*”作为正则表达式中的第一个字符吗?^表示字符串的开头。或者您的意思是。*匹配第一个字符之前的任意数量的字符。?另外,您还有一个未关闭的组。我试图在开始处放置。*,但返回的url类似于“m.whatever.com”,这意味着它只替换前面的一个字符,而不是任何数字^\w+\。\w+?:\。\w++$将为您提供的示例提供组1中的预期结果。但是,它不是从主机名提取顶级域的通用正则表达式。我没有这样做的原因是mobile.sports.where.comhappens@QiNie:如果您的目标确实是提取域名,而不是简单地修复原始正则表达式中的错误,请参阅和以获取想法。