首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配"[abc]","[[abc]","[abc]]",但不匹配"[[abc]]",

匹配"[abc]","[[abc]","[abc]]",但不匹配"[[abc]]",
EN

Stack Overflow用户
提问于 2021-08-25 08:42:27
回答 2查看 119关注 0票数 0

我正在尝试匹配[abc],除非它被[]从两端“转义”(因此[[abc]]被认为是转义的,而不是[[abc][abc]])。

我能找到的最接近的是来自Match "ABC" from *ABC*, but not from **ABC**(?<!\[)\[abc\](?!\]),但是如果它只从一侧转义,它会忽略match。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-26 01:16:37

@Thefourthbird的答案是有效的,但需要重复主模式abc,这与鼓励大多数人遵循的DRY principle背道而驰。

为了最大限度地实现代码重用,一种方法是使用捕获组来捕获[abc],然后在负向回溯模式中使用它,以确保它前面不会同时有[,后面不会同时跟]

代码语言:javascript
运行
复制
(\[abc])(?<!\[\1(?=]))

Demo

请注意,这适用于C#,因为.NET恰好支持可变长度的后视模式,而许多其他正则表达式引擎都不支持这种模式。

票数 3
EN

Stack Overflow用户

发布于 2021-08-25 08:48:10

前视可以在左边,也可以在右边,以允许在左边或右边有一个单括号,但不允许在另一边有一个双方括号。

代码语言:javascript
运行
复制
(?<!\[)\[abc]|\[abc](?!])

Regex demo

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68919615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档