You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在阿拉伯语字符串中提取两个子串间的指定内容?

问题分析与解决

你的代码运行失败的原因是正则表达式的匹配逻辑完全颠倒:原字符串里الطالب在最开头,الي在يذهب之后,而你写的'الي(.*)الطالب'是在找الي之后到الطالب之间的内容,这在原字符串里根本不存在,导致re.search返回None,调用group(1)自然会报错。

下面是两种可行的解决方法:

方法1:直接拆分字符串提取

因为目标内容是字符串中的第二个词,直接用split()拆分后取对应索引即可:

string = "الطالب يذهب الي الممدرسة"
words = string.split()
print(words[1])  # 输出: يذهب

方法2:修正正则表达式

如果一定要用正则,需要匹配الطالب后面、الي前面的内容,正则要写成这样:

import re
string = "الطالب يذهب الي الممدرسة"
res = re.search(r'الطالب\s+(.*?)\s+الي', string)
if res:
    print(res.group(1))  # 输出: يذهب

这里用\s+匹配任意数量的空白字符,.*?是非贪婪匹配,确保只捕获两个关键词之间的目标内容。

内容的提问来源于stack exchange,提问作者AAA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:00:01