python - 使用正则表达式将韩文文本解析为列表
问题描述
我有一些数据存储为熊猫数据框,其中一列包含韩语文本字符串。我想按如下方式处理每个文本字符串:
my_string = '모질상태불량(피부상태불량, 심하게 야윔), 치석심함, 양측 수정체 백탁, 좌측 화농성 눈곱심함(7/22), 코로나음성(활력저하)'
进入这样的列表:
parsed_text = '모질상태불량, 피부상태불량, 심하게 야윔, 치석심함, 양측 수정체 백탁, 좌측 화농성 눈곱심함(7/22), 코로나음성, 활력저하'
所以问题是识别一个单词(或几个单词)后跟仅带有文本的括号(可以是一个单词或几个用逗号分隔的单词)并将它们替换为所有单词(括号之前和括号内)以逗号分隔的情况(供以后处理)。如果一个单词后跟包含数字的括号(如本例中的 7/22),则应保持原样。如果一个词后面没有任何括号,它也应该保持原样。此外,我想保留单词的顺序(因为它们出现在原始字符串中)。
我可以使用正则表达式提取括号中的文本,如下所示:
corrected_string = re.findall(r'(\w+)\((\D.*?)\)', my_string)
这产生了这个:
[('모질상태불량', '피부상태불량, 심하게 야윔'), ('코로나음성', '활력저하')]
但是我很难创建我的结果字符串,即用我匹配的模式替换我的原始文本。有什么建议么?谢谢你。
解决方案
这有点笨拙,但您可以尝试:
my_string_list = [x.strip() for x in re.split(r"\((?!\d)|(?<!\d)\)|,", my_string) if x]
# you can make string out of list then.
推荐阅读
- python - PyTorch 的 DataLoader() 中的 next() 和 iter() 做了什么
- java - Java流如何将具有数量的对象解包到单个对象的列表中
- amazon-web-services - 使用 EC2 实例在 ELB 后面设置 ETCD 集群
- python - 创建新的 CSV 第一次迭代并在下一次迭代中追加
- python - 如何用python制作图像序列的lottie动画?
- git - 无法推送到 git 远程存储库
- css - 如何在引导程序中使用 flexbox 列制作可滚动菜单
- android - 如何为 HMS Core App 提供权限?
- python - Python:在多个数组列中计算零并有效地存储它们
- wso2 - 未添加帐户锁定属性以响应 wso2 中的 scim2 GET 用户 API