正则表达式:在两个特定字词之间输出

时间:2019-03-25 06:34:34

标签: regex

文字:

ITEM 1A.    RISK FACTORS 

    The following is a description of the principal risks inherent in our business.

ITEM 1B.    UNRESOLVED STAFF COMMENTS 

    Not Applicable.

正则表达式:

(?<=RISK).*

知道了:

ITEM 1A.    RISK **FACTORS** 

    The following is a description of the principal risks inherent in our business.

ITEM 1B.    UNRESOLVED STAFF COMMENTS 

    Not Applicable.

预期:

ITEM 1A.    RISK **FACTORS

    The following is a description of the principal risks inherent in our business.

ITEM 1B.    UNRESOLVED STAFF COMMENTS 

    Not Applicable.**

如何获取单词 RISK 之后和 ITEM 1B

之前的所有文本

2 个答案:

答案 0 :(得分:1)

以下模式应该起作用:

(?<=RISK)(.*?)(?=ITEM 1B)

请注意,在下面的演示中,我正在使用DOT ALL模式。这意味着.*可以跨换行符匹配,这是您在此处要执行的操作。

Demo

如果由于某些原因您无法使用环视功能,即使您的正则表达式工具支持捕获组,我们仍然可以继续进行操作。

如果您的正则表达式风格不支持DOT ALL,则一种可能的解决方法是使用[\s\S]*

(?<=RISK)([\s\S]*?)(?=ITEM 1B)

答案 1 :(得分:0)

您可以执行此操作,而无需使用s(全部标记)RegEx修饰符:

(?<=RISK)([\W\w]*)(?=ITEM 1B)

此处演示:https://regex101.com/r/ZUKZxy/4