如何修复替换正则表达式标志组件时的错误?

How do i fix the error in replace regex flag component?

我使用的是 nutch 1.14,因为我使用的是 GCS 索引器。这是我在 nutch-site.xml

<property>  
    <name>index.replace.regexp</name>  
    <value>  
        urlmatch=.*example.com\/[a-zA-Z0-9-]+  
        url:category=/https:\/\/www.example.com\/([a-zA-Z0-9-]+)//  
    </value>  
</property>  

我遇到错误:

$ grep 'replace' logs/hadoop.log  
ERROR replace.ReplaceIndexer - Pattern           
url:category=/https:\/\/www.example.com\/([a-zA-Z0-9-]+)//, has invalid flags component  

当我将 nutch-site.xml 中的行更改为:

-url:category=/https:\/\/www.mydomain.com\/([a-zA-Z0-9-]+)//2  

我想在类别中获得 url 的一部分。例如:如果 url 是 https://www.example.com/testcategory ,我喜欢类别是 testcategory

谢谢。

如果我没理解错的话,您想获取域 (example.com) 之后的内容并将其放在类别字段中,对吗?

在这种情况下,您的正则表达式有误。您想在 example.com/<category> 之后捕获所有内容,那么您需要配置 urlmatch,例如:

urlmatch=.*example\.com\/([a-zA-Z0-9-]+)

在这种情况下 ([a-zA-Z0-9-]+) 将创建一个可通过 </code> 访问的捕获组。然后你可以像这样设置字段:</p> <pre><code> url:category=

这将获取使用捕获组捕获的内容并将其放置在 category 字段中。

您可以在以下位置测试正则表达式:https://regex101.com/r/bMLqOq/1