我创建了一个小的 python 函数来从中文字符串中删除一些不需要的元素。 这些不需要的元素在开头有一个 & 符号 (&Something)。 该函数使用正则表达式来发现它们,删除它们并返回字符串中不包含不需要的元素的最长部分,但由于某种原因它无法按预期工作。 我在其他语言和字母的字符串上测试了该函数,它按预期工作。
# -*- coding: utf-8 -*-
import re
def clean_sentence(my_text):
split_the_text = re.split(r'([&].*?\s)', my_text)
longest_sentence = max(split_the_text, key=len)
return longest_sentence
my_string = "一个神奇的鸭子飞在与&SOMETHING然后唱支歌给&PERSON"
print clean_sentence(my_string)
这就是输出:
õ©Çõ©¬þÑ×ÕÑçþÜäÚ©¡Õ¡ÉÚú×Õ£¿õ©Ä&SOMETHINGþäÂÕÉÄÕö▒µö»µ¡îþ╗Ö&PERSON
最佳答案
非常简单:
没有空格,但您需要一个。如果您的 SOMETHING
或 PERSON
仅是英文字符或数字,您可能能够相处:
import re
def clean_sentence(my_text):
split_the_text = re.split(r'&\w+', my_text)
longest_sentence = max(split_the_text, key=len)
return longest_sentence
my_string = "一个神奇的鸭子飞在与&SOMETHING然后唱支歌给&PERSON"
print(clean_sentence(my_string))
# 一个神奇的鸭子飞在与
关于python - 正则表达式在中文文本上使用时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128724/