我正在尝试捕获一个以2个已知短语之间的大写字母开头的短语。让我们在“已知短语”和“ The”一词之间说。
例如在下面的文本中,我要捕获的短语是:Stuff TO CApture That always start with Capital letter but stop capturing when
忽略已知单词,忽略随机短语填充对象始终以大写字母开头,但在出现The时停止捕获。
我尝试过的正则表达式:(?<=Known phrase, ).*(?= The)
和Known phrase, (.*) The
这些正则表达式还捕获ignore random phrase
。我该如何忽略呢?
答案 0 :(得分:2)
答案 1 :(得分:2)
对于示例数据,您可以使用:
Known phrase, [a-z ]+([A-Z].*?) The
请参见regex demo
说明
Known phrase,
字面上匹配[a-z ]+
匹配1次以上的小写字符或空格(将大写字符除外的字符添加到字符类中)([A-Z].*?)
捕获与大写字符匹配的组,然后用0+倍除换行符的任何字符。The
字面上匹配答案 2 :(得分:1)
我不确定您要做什么,但是尝试坚持使用代码,(?<=Known phrase, )([^A-Z]*)(.*)(?=The)
应该可以解决问题:您需要的文本在第2组中。
如果您需要匹配所有内容,只需更改为(.*)(?<=Known phrase, )([^A-Z]*)(.*)(?=The)(.*)
并将您的文本放在第3组即可。