在我的hive表中有如下数据。
FirstName
Mr Tim Cannon
Guest
Miss Kerri Smith
Missra
我想使用
INITCAP(REGEXP_REPLACE('Miss Missra','(Mr.)|^Mr$|^Ms.$|^Ms$|^Mrs.$|^Mrs$|^Dr.$|^Dr$|^Miss$',' '))
但还是一样。
当尝试使用
INITCAP(REGEXP_REPLACE('Miss Missra','(\\+)|(Mr.)|^Mr$|^Ms.$|^Ms$|^Mrs.$|^Mrs$|^Dr.$|^Dr$|Miss',' '))
那就把'missra'换成了'ra'。
输出应该是:
FirstName
Tim Cannon
Guest
Kerri Smith
Missra
请给我一些解决方法。
1条答案
按热度按时间nukf8bse1#
$
的意思是行尾,而在'^Miss'
之后是空格,不是行尾。'^Miss'
应该可以用。点(字面的.
)应该用\
屏蔽,因为在regexp中点有特殊的含义--任何字符,而你的意思似乎是字面的点(.
)。^
- 意味着行首的锚,另外,第一个regexMr/\.
没有^
锚,如果不是故意的,请修正它。