Python 如何列出以特定字符开头和结尾的所有Unicode字符串?

Python 如何列出以特定字符开头和结尾的所有Unicode字符串?,python,regex,unicode,Python,Regex,Unicode,我试着列出所有有特定结尾和开头的单词。 这是ണ്我的结束字符和വി是我的起始字符 这是我的意见 പാമോലിന്‍ കേസിന്റെ വിചാരണ നടപടികള്‍ ഹൈക്കോടതി രണ്ടുമാസത്തേക്ക് സ്‌റ്റേചെയ്തു. കേസ് പിന്‍വലിക്കണമെന്ന ആവശ്യം നിരസിച്ച തൃശ്ശൂര്‍ വിജിലന്‍സ് കോടതി ഉത്തരവിനെതിരെ വിജിലന്‍സ് സമര്‍പ്പിച്ച ഹര്‍ജിയിലാണ് ഇടക്

我试着列出所有有特定结尾和开头的单词。 这是
ണ്我的结束字符和
വി是我的起始字符

这是我的意见

പാമോലിന്‍ കേസിന്റെ വിചാരണ നടപടികള്‍ ഹൈക്കോടതി രണ്ടുമാസത്തേക്ക് സ്‌റ്റേചെയ്തു. കേസ് പിന്‍വലിക്കണമെന്ന ആവശ്യം നിരസിച്ച തൃശ്ശൂര്‍ വിജിലന്‍സ് കോടതി ഉത്തരവിനെതിരെ വിജിലന്‍സ് സമര്‍പ്പിച്ച ഹര്‍ജിയിലാണ് ഇടക്കാല ഉത്തരവ്.
预期产量为

വിചാരണ
如何为它编写正则表达式

re.findall(ur'\bവി\w+ണ\b', inputtext, flags=re.UNICODE) won´t work

我仍然不明白为什么它不能像英语一样工作,请在答案中添加这一事实,以便我更好地理解这个问题

您的输入文本充满了单词和非单词字符的混合,因此确定单词边界的唯一方法是前后查看空格:

re.findall(ur'(?<![^ ])വി[^ ]+ണ്?(?![^ ])', inputtext, flags=re.UNICODE)

。。。或者,如果你想要更多的语言

original_list = ('abc', 'ccbd', 'abbc')
filtered = tuple(filter(lambda x: x.startswith('a') and x.endswith('c'), original_list))
filtered
('abc', 'abbc')

但是它肯定不能回答你的问题。

那么你会给这个表达式什么样的输入?您希望得到什么样的输出?文本中没有与您的条件匹配的单词<代码>വിചാരണ
与以
结尾的单词不匹配ണ്。如果在Malayalam Sangam中应该是相同的,那么您需要告诉我们在Unicode中是如何工作的。如果您将表达式更改为re.findall(ur'\bവി\w+ണ\b',inputtext,flags=re.UNICODE),那么它也不会工作吗?为什么?@karu:为什么这样不行?正则表达式仍然匹配这两个字符。@martjn我已经测试过了now@karu:输入中没有以
വി并以
ണ്。有一个以
രണ但这不一样。如果更改Unicodeണ് 到ണ 在表达式中,那么它也将不起作用。中间的任何代码点可能不是单词字符吗?对于不熟悉脚本的人来说,很难判断他们是否是。
original_list = ('abc', 'ccbd', 'abbc')
filtered = tuple(filter(lambda x: x.startswith('a') and x.endswith('c'), original_list))
filtered
('abc', 'abbc')