用正则表达式仅匹配捕获组的结果?

4
基本上,我想要搜索某些内容并获取一个捕获组,然后忽略搜索并获取与该捕获组匹配的结果。
所以,如果我有以下文本:
apples are good
bananas are bad
oranges are good

I want oranges
I want bananas
I want apples

我想搜索“(\w+)是好的”,然后再搜索“I want \1”以获得“I want apples”和“I want oranges”。如何在一个表达式中完成这个操作?(对不起,解释不够清楚。)

2
类似于 (\w+) are good.*(我想要\1) - Paolo
你使用的是哪种编程语言?你有尝试过的示例吗(例如使用两个表达式来完成)? - UncleCarl
3
请尝试使用 https://regex101.com/r/Dc2nOw/1。 - Wiktor Stribiżew
1个回答

1
这将完成它:

/.*?(\w+?)\sare\sgood.*?(\w+?)\sare\sgood.*(I\swant\s(\1|\2)).*(I\swant\s(\1|\2))/s

这有点hacky,因为它只能在提供的文本上工作,据我所知,没有一种方法可以使用单个正则表达式抓取每个“are good”出现的所有“I want”出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接