繁体   English   中英

如何在此正则表达式上添加单词边界

[英]How can I add a word boundary on this regex

使用JavaScript

通常,此正则表达式可以正常工作,但由于OCR拾取的文本中缺少字符或出现了奇怪的标点符号,因此我经常发现这种正则表达式,该正则表达式可以在文本中进行,并且可以拾取范围更广的文本。 我想做的是确保它在第14段的字符串中停止并且在匹配中没有任何进一步的变化。 我正在搜索成千上万的文档,之后这些文档的文本都会略有不同,因此我需要一种以某种方式停止搜索的方法。 如何在第14段添加单词边界?

另外,在下面的字符串中,如果第3(b)款带有方括号,则将其捕获到组中。 但是,如果只有第3款,则不会捕获它。 在下面的文本中,我希望它可以拾取第3段,然后在到达第14段时停止搜索。用于组捕获的可能的文本选项包括:

第3段

第3(b)段

第10段

正则表达式:

Para[a-z]+ 13\S+\s+E[\s\S]*?\(B\)\s["']Ret[a-z]+ Am[a-z]+["'].*?(Paragraph \S+[^.\s])

串:

第13段。选举和变量-io。 以下条款和证券交易,本附件第13款的条件仅适用于乙方(“桥梁协议”):(a)摩根士丹利之间就合格公司达成的过渡协议中定义的担保权益和“义务”。 附加义务:关于A:本附件中的“义务”一词包括以下内容:无。 关于B:无。 (b)信贷支持义务。 (i)交货金额,退货金额和信用支持金额。 (A)“交货(B)“退货金额”具有“金额”中规定的含义”具有本附件第3款中规定的含义。 (C)其他3(a)

第14段。选举和变量-转移时间。 第4(b)段

要捕获可能带有括号的带有单词后缀的段落:

Paragraph (\w+|\(\w+\))

以这种方式限制您匹配的文本:(最多50个字符的惰性)

.{0,50}

在正则表达式的末尾使用否定的前瞻:(换行符,后跟单词段落)

(?!\nParagraph (\w+|\(\w+\)))

所以结合您的正则表达式将以:

.{0,50}(?!\nParagraph (\w+|\(\w+\)))

在您的正则表达式中

Paragraph (\w+|\(\w+\))\S+\s+E[\s\S]*?\(B\)\s["']Ret[a-z]+ Am[a-z]+["'].{0,500}(?!\nParagraph (\w+|\(\w+\)))

在此处输入图片说明

仍然不太适合我。 让我添加两个简单的示例。

第12段第13段第3(b)段第14段第6段

在此示例中,所有方法均有效,它正确捕获了第3(b)段。

现在,另一个例子-

第12款第13款抛物线3(b)款14款第6款

在此示例中,存在拼写错误,因此它错误地捕获了第6段。 在这里,我需要它在找到第14段时停止并且不捕获任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM