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

正则匹配梵语诗文:如何提取完整段落及指定编号诗文?

梵语诗文正则提取方案

一、带换行文本提取完整诗节

原正则.* चैव यत् .*仅匹配单行内容,若要提取以॥结尾的完整诗节,可使用如下正则:

^(.* चैव यत् .*\n.*॥.*)$
  • 逻辑说明:
    • ^定位诗节起始位置
    • .* चैव यत् .*匹配包含目标短语的第一行内容
    • \n匹配换行符
    • .*॥.*匹配带编号的第二行(以॥结尾)
    • $定位诗节结束位置

在支持多行匹配的工具(如Python开启re.MULTILINE模式)中执行,即可提取完整诗节:

अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् ।
इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥

सत्कारमानपूजार्थं तपो दम्भेन चैव यत् ।
क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥

二、无换行文本提取指定编号诗节

针对无换行的纯文本,要提取编号为17.12和17.18的诗节,可直接以目标编号为锚点匹配内容:

正则表达式

(.*?॥ 17\.12॥)|(.*?॥ 17\.18॥)
  • 逻辑说明:
    • .*?采用非贪婪匹配,避免跨诗节抓取无关内容
    • ॥ 17\.12॥和॥ 17\.18॥作为精准锚点,定位目标诗节的结尾
    • 通过分组同时匹配两个目标编号对应的内容

提取结果

将匹配到的有效内容拼接后,可得到:

अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् । इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥ सत्कारमानपूजार्थं तपो दम्भेन चैव यत् । क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥

Python代码示例

import re

text = "दृष्ट्वा तु पाण्डवानीकं व्यूढं दुर्योधनस्तदा । आचार्यमुपसङ्गम्य राजा वचनमब्रवीत् ॥ १-२॥ पश्यैतां पाण्डुपुत्राणामाचार्य महतीं चमूम् । व्यूढां द्रुपदपुत्रेण तव शिष्येण धीमता ॥ १-३॥ अन्ये च बहवः शूरा मदर्थे त्यक्तजीविताः । नानाशस्त्रप्रहरणाः सर्वे युद्धविशारदाः ॥ १-९॥ अपर्याप्तं तदस्माकं बलं भीष्माभिरक्षितम् । पर्याप्तं त्विदमेतेषां बलं भीमाभिरक्षितम् ॥ १-१०॥ अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् । इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥ अयनेषु च सर्वेषु यथाभागमवस्थिताः । भीष्ममेवाभिरक्षन्तु भवन्तः सर्व एव हि ॥ १-११॥ सत्कारमानपूजार्थं तपो दम्भेन चैव यत् । क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥"
pattern = re.compile(r'(.*?॥ 17\.12॥)|(.*?॥ 17\.18॥)')
matches = pattern.findall(text)
result = ' '.join([''.join(match) for match in matches if any(match)])
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:27:33