Spark Java中regex_replace替换details列|为-的正确用法及转义疑问
Spark Java中替换字符串特殊字符
|的正确方式 - 正确写法是第二种:
regex_replace(details, "\\|", "-") |是正则表达式的特殊元字符,代表“逻辑或”。直接写"|"会被正则引擎解析为匹配任意单个位置(相当于匹配空字符串的或操作),最终会给原字符串的每个字符前后都加上-,完全达不到替换目标|的效果。\的作用是转义:将正则里的特殊元字符转换为普通字符,让引擎把它当作普通文本匹配。但Java字符串中\本身是转义字符,所以要表示正则中的一个\,必须写两个\\,这样\\|最终会被解析为正则表达式里的\|,也就是把|当作普通字符处理。- 不添加
\的话,根本无法成功替换目标|,反而会破坏原字符串结构。比如原字符串是test|demo,用第一种写法会得到-t-e-s-t-|-d-e-m-o-。
内容的提问来源于stack exchange,提问作者Sachin
相关产品推荐
相关产品推荐

