拆分韩语和数字
Splitting Korean and Number
我需要将韩文字母与两个数字分开。
韩语字母可以是一到三个单词,这让一切变得更加复杂。
以下是我知道的一些韩语正则表达式代码范围:
ㄱ ~ ㅎ: 0x3131 ~ 0x314e
ㅏ ~ ㅣ: 0x314f ~ 0x3163
가 ~ 힣: 0xac00 ~ 0xd7a3
前面的数字始终是 4 位数字,另一位是 5 位数字。
这里有一些例子:
2019개회54321
2017가51584
2019가행견16997
我需要的应该是这样的:
Var_A = "2019"
Var_B = "가"
Var_C = "23220"
提前致谢;)
这里不需要正则表达式。因为你知道数字的长度,所以你可以只对字符串进行切片。
获取前 4 位数字:
yourString[:4]
获取韩语部分:
yourString[4:-5]
要获取最后 5 位数字:
yourString[-5:]
如果你真的想要一个正则表达式,你可以使用这个:
^(\d{4})([\u3131-\u3163\uac00-\ud7a3]+?)(\d{5})$
记得打开 re.UNICODE
Unicode 匹配选项。前4位、韩文、后5位分别在第1、2、3组。
如果你真的想使用regex
来解决这个问题(这不是最好的解决方案,但可以在其他情况下使用):
# -*- coding: utf-8 -*-
import re
cjkText = '2019개회54321'
regex = re.compile(r'^(\d{4})([ㄱ-ㅣ가-힣]+)(\d{5})$')
m = re.search(regex,cjkText)
try:
var_A, var_B, var_C = m.group(1), m.group(2), m.group(3)
print var_A
print var_B
print var_C
except:
print 'Input string incorrect'
备注:
ㄱ ~ ㅎ: 0x3131 ~ 0x314e
ㅏ ~ ㅣ: 0x314f ~ 0x3163
가 ~ 힣: 0xac00 ~ 0xd7a3
前两个连续的间隔可以重新组合成一个大段ㄱ-ㅣ가-힣
。
输出:
2019
개회
54321
正则表达式演示:
https://regex101.com/r/P9oIXS/1/
我需要将韩文字母与两个数字分开。
韩语字母可以是一到三个单词,这让一切变得更加复杂。
以下是我知道的一些韩语正则表达式代码范围:
ㄱ ~ ㅎ: 0x3131 ~ 0x314e
ㅏ ~ ㅣ: 0x314f ~ 0x3163
가 ~ 힣: 0xac00 ~ 0xd7a3
前面的数字始终是 4 位数字,另一位是 5 位数字。
这里有一些例子:
2019개회54321
2017가51584
2019가행견16997
我需要的应该是这样的:
Var_A = "2019"
Var_B = "가"
Var_C = "23220"
提前致谢;)
这里不需要正则表达式。因为你知道数字的长度,所以你可以只对字符串进行切片。
获取前 4 位数字:
yourString[:4]
获取韩语部分:
yourString[4:-5]
要获取最后 5 位数字:
yourString[-5:]
如果你真的想要一个正则表达式,你可以使用这个:
^(\d{4})([\u3131-\u3163\uac00-\ud7a3]+?)(\d{5})$
记得打开 re.UNICODE
Unicode 匹配选项。前4位、韩文、后5位分别在第1、2、3组。
如果你真的想使用regex
来解决这个问题(这不是最好的解决方案,但可以在其他情况下使用):
# -*- coding: utf-8 -*-
import re
cjkText = '2019개회54321'
regex = re.compile(r'^(\d{4})([ㄱ-ㅣ가-힣]+)(\d{5})$')
m = re.search(regex,cjkText)
try:
var_A, var_B, var_C = m.group(1), m.group(2), m.group(3)
print var_A
print var_B
print var_C
except:
print 'Input string incorrect'
备注:
ㄱ ~ ㅎ: 0x3131 ~ 0x314e
ㅏ ~ ㅣ: 0x314f ~ 0x3163
가 ~ 힣: 0xac00 ~ 0xd7a3
前两个连续的间隔可以重新组合成一个大段ㄱ-ㅣ가-힣
。
输出:
2019
개회
54321
正则表达式演示: https://regex101.com/r/P9oIXS/1/