2015-02-10 132 views
0

假设我们有“REST API”这个例子,并且我们只想捕获“REST API”,那么我们怎么做呢?也可能存在诸如“REST API”和“REST API,THE”之类的变体,我们希望总是排除单词THE。忽略字符串中间的一个词,正则表达式

我已经能够为“REST”和“API”使用单独的捕获组,但我无法弄清楚如何为“REST API”创建一个组;不包括“THE”。

这里是我的尝试:

((REST\s)(?:THE)(\sAPI)) 

这将返回匹配组:

1. REST THE API 
2. REST 
3. API 

谢谢您的时间。

+0

只是连接组2和3,是不是你想要的? – RPGillespie 2015-02-10 22:40:59

+0

这可能是最好的解决方案。虽然,如果顺序不同,看起来好像我们不会得到一场比赛。 – Tyler 2015-02-10 22:43:42

+0

[这会有所帮助](https://regex101.com/r/dP9uI9/1) – anubhava 2015-02-10 22:45:55

回答

0

你可以做这样的事情:

/(REST|API)/ 

它将同时匹配“THE”和“API”,但请记住,它也将匹配“这些”和“APIZZA”的开始和订单没有执行。

https://regex101.com/r/dP9uI9/2