正则表达词汇粘在一起

时间:2014-08-15 18:45:08

标签: regex qtp

有没有办法让正则表达式在特定单词或字符之前停止?

例如,我有一个类似的文字:

  

顾问:HarrisTeamTeamRole

所以我想写一个正则表达式,使顾问者名称动态,但只捕获哈里斯。如何编写正则表达式以便在Team之前停止?

3 个答案:

答案 0 :(得分:2)

您可以尝试懒惰方式并从索引1获取匹配的组

^Advisor:(.*?)Team

这是online demo

答案 1 :(得分:2)

Try this one

这个正则表达式将是:

:([A-Z][a-z]*)

这个只捕获冒号后的第一个单词,只要它在CamelCase中,这意味着它不必是单词Team,也可以是Advisor:HarrisNetworkSomething

答案 2 :(得分:2)

你可以使用这样的lookbehind和lookahead:

(?<=Advisor:).*?(?=Team)

Debuggex Demo

这只会从“Advisor:”捕获到第一个“Team”,并且正则表达式不会捕获捕获组中的任何其他内容(包括“Team”)或其他内容。这将需要一种可以做后卫的正则表达式......如果你不使用它,你将不得不使用分组......这可能很简单:

Advisor:(.*?)Team

然后只需获取捕获组#1