我有一根日本弦“さいたま市 公司中央区" 在我的 hive table上。我只需要表中字符串的第一部分,即さいたま市.
我试过用分裂函数和正则表达式,它不起作用。我试过用Hive和Python
尝试了下面所有这些,它没有工作
select split("さいたま市 中央区",'')[0];
select regexp_extract("さいたま市 中央区","^(.*?)\\s(.*)",1)
select regexp_extract("さいたま市 中央区","[ur'[\u4e00-\ufaff]']",1)
我只想要弦的第一部分。
3条答案
按热度按时间fxnxkyjh1#
将此作为答案发布。。。
复制/粘贴问题文本并运行
repr
给了我这表明
split(... that text ..., '\u3000')[0]
应该会产生你想要的结果。表达式
"[ur'[\u4e00-\ufaff]']"
看起来大错特错;更正为ur'[\u4e00-\ufaff]'
或许也能起作用。或者干脆试试"[\u4e00-\ufaff]"
.kulphzqa2#
所以有一件事要记住,日语空格和英语空格不一样(我不知道为什么,但是ascii值不同)。这意味着您不能使用\s或尝试使用
split
使用正规空间(就像你在例子中尝试的那样)你需要的正则表达式是-
(.+)\h(.+)
在这里,您可以查找水平空格,而不是常规空格。此处执行r6hnlfcb3#
对我来说很好。您只需要将非标准的日语空格字符复制/粘贴到
split()
使用python 2时的函数。