C# 复杂正则表达式,用于在大文档中查找特定模式



我正在尝试想出一个正则表达式,它将捕获引用的文本,后跟一组包含圣经经文引用的括号。这样,包含引用圣经经文的基督教书中的章节的文档可以匹配其经文,并替换为任何所需的圣经翻译。

我在这方面遇到了很多麻烦。我只能想出部分有效的模式。这是一个给我带来麻烦的示例文本。

"使人作门徒" - 建立像他们一样受到基督使命如此约束的人,他们不仅跟随,而且带领别人跟随他的道路。只有当门徒被造就时,委员会的其他活动才能达到他们的目的。为收割者祷告 领导是重点。耶稣已经通过他自己的事工表明,受骗的群众已经成熟,可以收割了,但是没有属灵的牧羊人带领他们,他们怎么能得胜呢?耶稣提醒他的门徒:"因此,你们要祷告庄稼的主,他要差遣工人进入他的庄稼"(太9:37,38;路加福音10:2)。更多文字在这里。

这是我迄今为止最好的正则表达式。

("[^sd]*[^:]*[^sd]*)*"s*(([w. ]+[ds]+[:][sd-]+[^)]*)

我想出的所有正则表达式只会在没有发生这种情况的情况下捕获这种模式。这样做的问题是,它将捕获第一个引号,然后是最后一个引号,紧接着是末尾的括号,然后是那些括号和诗句。然而,对于这个例子,我只希望它捕捉到"他要差遣工人进入他的庄稼"(太9:37,38;路加福音10:2)。

有什么想法吗?????正则表达式可以做到这一点吗?

另外,很抱歉这里的圣经引用,我只是对解决这个有点复杂的问题感兴趣。

这是我这样做的链接。

试试这个

("[^"]+"s*([^)]+))

正则表达式演示

或者这个

"([^"]+)"s*(([^)]+))

正则表达式演示

解释:
( … ):捕获组样本
[^x]:一个不是 x 样本
的字符 +:一个或多个样品
s:"空格字符":空格、制表符、换行符、回车符、垂直制表符示例
*:零次或多次采样
:转义特殊字符示例

最新更新