正则表达式术语是否可以脱节,或者选择一个术语而不包含?[关闭]

Can regex terms be disjointed, or select around a term without including? [closed]

提问人:Seraphendipity 提问时间:11/11/2023 最后编辑:The fourth birdSeraphendipity 更新时间:11/11/2023 访问量:32

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

9天前关闭。

正在搜索 或 或 ...[Banana_Pudding|banana Puddings][Banana Puddings][Banana_Pudding|Banana pudding]s

使用“全部替换”并期望所有输出结果为 或[Banana Pudding][Banana Pudding][Banana Pudding]s

有没有办法保持单词的复数完整?

我试过了:

/\[\[(banana)[\s_](pudding)(\|\1 \2)?]](?!s)/i

/\[(banana)[\s_](pudding)(\|\1 \2)?(?:s]]|]s)/i

展望是微不足道的,但我一辈子都无法理解我如何在诸如转换为[Banana_Pudding]s[banana_pudding|Banana Puddings][Banana Pudding]s

我能想到的最好的是选择除了要替换的所有东西。显然,第二个“全部替换”可以解决它,但是有没有办法一次处理这种情况?s

表达式正则表达式环视

评论

2赞 Reilas 11/11/2023
您能否提供一个示例文本和预期的输出?我想以下内容将与其中任何一个相匹配。.(?i)banana[_ ]puddings?
0赞 The fourth bird 11/11/2023
你的意思是匹配然后替换?regex101.com/r/iYXMsL/1\[(banana)[\s_](pudding)s?(?:\|\1 \2s?)?][\1 \2]
0赞 Darin 11/11/2023
@Thefourthbird,我昨晚把他的问题读了 7 遍,所以我想我明白他想要什么,我不知道有什么方法可以完成它。在 Regex101 中,所有 3 个结果的末尾都应该有一个。在测试文本中,如果复制每一行,则仅删除末尾的 ,则应将这些行替换为末尾没有 NOT 的输出。当输入复数时,out 为复数,当输入非复数时,输出不是复数时,全部合二为一替换,而不是使用 2 个替换。我不知道能不能做到。sss

答: 暂无答案