1) 如何将下面的配置单元部分转换为java map reduce?
translate(regexp_replace(colA,"(\\\\=)","\\\\equalto"),"\[\]\(\)\{\}\^\?\+\*\$","____________")
在regexp\u replace中,我替换all=,在outer translate中,我替换影响将来regexp\u replace解析的所有字符(如果我不替换这些字符,它们稍后会引发异常)。
2) 我是否必须使用replacechars(),如果是,那么如何使用?
示例字符串格式为: tag1=573 tag2=ABC 0nuif6d Saturn 0i899 AA 0 (WORD) LOWER 0 (WORD2) HH 0 BB 0 CC 1 LL 0 D 0 FF 0 AB 0 UPPER 0 (ONCOLD) UPPER 1 PART: Sold \= 88vb JJ number\= 0 String "String_here" ANDND JUJFNG fill EXTRA SUNSET: empty tag3=/Informational tag4=/Value tag5=Value1/Value2 tag6=/AB/Acs Sy/Api Afg Hold Cones/HHH+11: 4.3.2-4.3.4 tag6=11123 tag7=Hello World tag8=a-dfdAds\=\= tag9=Value3 tag.9=Space separated words \= 88 , cold 87 Goal Run\=2, LOT OF SPACE SEPARATED GARBAGE WORDS tag.a=0( tag.b=02
注:标记不是硬编码为标记。它们可以是任何英文单词,如序列号或网址 serial_no=hello world website.address=\SO.com=/question
哪里 serial_no
以及 website.address
是标签。
1条答案
按热度按时间lhcgjxsq1#
说明
此表达式将:
假设标记名不包含空格
假设标记名与它们各自的值之间用
=
两边都没有空白=
符号,而不是由\
假设标记名与前面的字符串用空格隔开,同样,值也将与下一个标记名用空格隔开捕获标记名称和值
将避免在嵌入字符串值侧的等号上拆分字符串
(\S*?)(?<!\\)=(\S*.*?)(?=\S*(?<!\\)=|\Z)
然后,您可以根据需要重新组装或进一步处理字符串的各个组件。
示例
现场演示
示例文本
来自您在评论中包含的示例文本。现在还不清楚是什么定义了一个标记或等号来分隔名称和值:
serial_no=hello world website.address=\SO.com=/question tag1=573 tag2=ABC 0nuif6d Saturn 0i899 AA 0 (WORD) LOWER 0 (WORD2) HH 0 BB 0 CC 1 LL 0 D 0 FF 0 AB 0 UPPER 0 (ONCOLD) UPPER 1 PART: Sold \= 88vb JJ number\= 0 String "String_here" ANDND JUJFNG fill EXTRA SUNSET: empty tag3=/Informational tag4=/Value tag5=Value1/Value2 tag6=/AB/Acs Sy/Api Afg Hold Cones/HHH+11: 4.3.2-4.3.4 tag6=11123 tag7=Hello World tag8=a-dfdAds\=\= tag9=Value3 tag.9=Space separated words \= 88 , cold 87 Goal Run\=2, LOT OF SPACE SEPARATED GARBAGE WORDS tag.a=0( tag.b=02
样本代码比赛
组0将具有整个子字符串组1将具有名称字段组2将具有值字段