首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:重复模式n次,在最后的重复上有变化

Regex:重复模式n次,在最后的重复上有变化
EN

Stack Overflow用户
提问于 2014-12-19 00:59:09
回答 1查看 11.7K关注 0票数 7

我有一个正则表达式,用于匹配特定的语法(n次),在每一次事件之后都有一个管道(\),但最后的事件除外。目前,我的模式是类似于(pattern)\|{3}的模式,但这并不能满足没有尾随管道的要求。我是否可以在不重复(pattern)的情况下完成这一任务?我能想到的最好的解决方案是(pattern)\|{2}(pattern)

有效示例:

*401-401 2-10

无效示例:

*\x{e76f}401-10

(pattern)的值与回答我的具体问题无关,但为了完整起见,它现在的形式是:(?:(?:((\*)|(\[[\w+ ]\-[\w+ ]\])|(\d+)))\|){3}

编辑

这是在.NET和JavaScript中使用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-19 01:04:10

如果要匹配整个输入字符串,有一个简单的解决方案:

代码语言:javascript
复制
(?:pattern(?:\|(?!$)|$)){3}

这意味着:匹配您的模式,然后:

  • \|(?!$):没有后面跟着字符串末尾的管道
  • $字符串的结尾

三次。

对于您的特定模式,这将是:

代码语言:javascript
复制
^(?:(?:((\*)|(\[[\w+ ]\-[\w+ ]\])|(\d+)))(?:\|(?!$)|$)){3}

我还以^作为模式的前缀,因为这个解决方案只有在与整个输入匹配时才能工作。

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

https://stackoverflow.com/questions/27558321

复制
相关文章

相似问题

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