小编Dav*_*one的帖子

如何匹配,但不捕获正则表达式的一部分?

我有一个字符串列表.其中一些是形式123-...456.可变部分"......"可以是:

  • 字符串"apple"后跟连字符,例如 123-apple-456
  • 字符串"banana"后跟连字符,例如 123-banana-456
  • 一个空白字符串,例如123-456(注意只有一个连字符)

除"apple"或"banana"之外的任何单词均无效.

对于这三种情况,我想分别匹配"apple","banana"和"".请注意,我从不想捕获连字符,但我总是希望匹配它.如果字符串不是123-...456如上所述的形式,那么根本就没有匹配.

如何编写正则表达式来执行此操作?假设我有一种风格,允许前瞻,后视,环视和非捕获组.


这里的关键观察是,当你有"苹果"或"香蕉"时,你还必须有尾随连字符,但你不想匹配它.当您匹配空白字符串时,您不能使用尾随连字符.我认为,封装这个断言的正则表达式将是正确的.

regex

177
推荐指数
5
解决办法
14万
查看次数

标签 统计

regex ×1