如何修复替换正则表达式标志组件时的错误?
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。
我使用的是 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。