将正则表达式应用于“|”中的第二个单词解释器Flume配置中的分隔字符串

时间:2016-10-21 10:44:33

标签: regex hadoop interceptor flume

我的要求是将正则表达式应用于来自kafka的数据。

数据如下:

abc|def|mnq|xyz
abc1|def1|mnq1|xyz1
abc2|def2|mnq2|xyz2

我想使用水槽解释器在第一个词上应用正则表达式,即(def)。

正则表达式可以过滤单词和十进制数。

有人可以为此提供帮助。

1 个答案:

答案 0 :(得分:1)

以下python代码匹配所有行中的所有第二个单词:

import re

# used || to add multilines combine into one string
parent = """abc|def|mnq|xyz||
abc1|def1|mnq1|xyz1||
abc2|def2|mnq2|xyz2"""

pattern = re.compile("\w+\|(.*?)\|\w+", re.MULTILINE)
m = pattern.findall(parent)
print m

输出|

['def', 'def1', 'def2']

注意:转义'|'通过'\'。