如何拆分日文字符的字符串?
How to split the string which is in japanese characters?
我的蜂巢table中有一个日文字符串“さいたま市 中央区”。我只想要 table 中的字符串的第一部分,即 さいたま市。
我试过使用拆分函数和正则表达式,但没有用。我尝试使用蜂巢和 python
下面的都试过了,没用
select split("さいたま市 中央区",'')[0];
select regexp_extract("さいたま市 中央区","^(.*?)\s(.*)",1)
select regexp_extract("さいたま市 中央区","[ur'[\u4e00-\ufaff]']",1)
只要字符串的第一部分。
所以要记住一件事,日语空格与英语空格不同(我不确定为什么,但 ascii 值不同)。这意味着您不能使用 \s 或尝试使用 split
使用普通空格。 (就像您在示例中尝试过的那样)
您需要的正则表达式是- (.+)\h(.+)
您在其中查找水平空格而不是常规空格。 implementation here
对我来说很好用。当使用 python 2.
时,您只需要 copy/paste 那个非标准的日语 space 字符到 split()
函数的参数中
>>> a = "さいたま市 中央区"
>>> a.split(' ') # use this for python 2.*
['さいたま市', '中央区']
>>> a.split() # this works fine in python 3
['さいたま市', '中央区']
>>>
也将此作为答案发布...
Copy/pasting 你问题的文字 运行 repr
给了我
>>> repr("""I have a japanese string "さいたま市 中央区" in my hive table""")
'\'I have a japanese string "さいたま市\u3000中央区" in my hive table\''
这表明 split(... that text ..., '\u3000')[0]
应该会产生您想要的结果。
表达式"[ur'[\u4e00-\ufaff]']"
看起来非常错误;将其更正为 ur'[\u4e00-\ufaff]'
也可能有效。或者可以简单地尝试 "[\u4e00-\ufaff]"
.
我的蜂巢table中有一个日文字符串“さいたま市 中央区”。我只想要 table 中的字符串的第一部分,即 さいたま市。
我试过使用拆分函数和正则表达式,但没有用。我尝试使用蜂巢和 python
下面的都试过了,没用
select split("さいたま市 中央区",'')[0];
select regexp_extract("さいたま市 中央区","^(.*?)\s(.*)",1)
select regexp_extract("さいたま市 中央区","[ur'[\u4e00-\ufaff]']",1)
只要字符串的第一部分。
所以要记住一件事,日语空格与英语空格不同(我不确定为什么,但 ascii 值不同)。这意味着您不能使用 \s 或尝试使用 split
使用普通空格。 (就像您在示例中尝试过的那样)
您需要的正则表达式是- (.+)\h(.+)
您在其中查找水平空格而不是常规空格。 implementation here
对我来说很好用。当使用 python 2.
时,您只需要 copy/paste 那个非标准的日语 space 字符到split()
函数的参数中
>>> a = "さいたま市 中央区"
>>> a.split(' ') # use this for python 2.*
['さいたま市', '中央区']
>>> a.split() # this works fine in python 3
['さいたま市', '中央区']
>>>
也将此作为答案发布...
Copy/pasting 你问题的文字 运行 repr
给了我
>>> repr("""I have a japanese string "さいたま市 中央区" in my hive table""")
'\'I have a japanese string "さいたま市\u3000中央区" in my hive table\''
这表明 split(... that text ..., '\u3000')[0]
应该会产生您想要的结果。
表达式"[ur'[\u4e00-\ufaff]']"
看起来非常错误;将其更正为 ur'[\u4e00-\ufaff]'
也可能有效。或者可以简单地尝试 "[\u4e00-\ufaff]"
.