繁体   English   中英

已知短语前后的正则表达式条件

[英]Regex condition after and before a known phrase

我正在尝试捕获一个以2个已知短语之间的大写字母开头的短语。 让我们在“已知短语”和“ The”一词之间说。

例如,在下面的文本中,我要捕获的短语是:要捕获的Stuff TO CApture That always start with Capital letter but stop capturing when

忽略单词已知短语,忽略随机短语填充对象始终以大写字母开头,但在出现时停止捕获。

我尝试过的正则表达式: (?<=Known phrase, ).*(?= The)Known phrase, (.*) The这些正则表达式还捕获ignore random phrase 我该如何忽略呢?

我猜因为正则表达式是左侧贪婪,所以您应该首先尝试匹配不是大写字母的任何东西

类似于/ /Start[^AZ]*(.*)stop/ [^AZ] /Start[^AZ]*(.*)stop/ (。*) /Start[^AZ]*(.*)stop/[^AZ]匹配非大写字母的任何内容)

regex101演示

对于您的示例数据,您可以使用:

Known phrase, [az ]+([AZ].*?) The

正则表达式演示

说明

  • Known phrase,匹配
  • [az ]+匹配1+乘以小写字符或空格(将大写字符除外的字符添加到字符类中)
  • ([AZ].*?)捕获与大写字符匹配的组,后跟0+次除换行符以外的任何字符。
  • The赛事从字面上

我不确定您要做什么,但是,尝试坚持使用您的代码, (?<=Known phrase, )([^AZ]*)(.*)(?=The)应该可以解决问题:您需要的文本在第2组中。
如果您需要匹配所有内容,只需将其更改为(.*)(?<=Known phrase, )([^AZ]*)(.*)(?=The)(.*)并在第3组中获取您的文本。

暂无
暂无

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

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