当前位置: 首页 > 知识库问答 >
问题:

如何在不匹配组后排除匹配组-正则表达式

梅跃
2023-03-14

null

A-ZA-Z0-90,3)(?ltSerialMarket&>A-ZA-Z0,2)(?ltSerialSuffix&>a-zA-Z0-9*)/code>

基本上它说:

这意味着:

匹配1

完全匹配0-8

0-3 abc

3-5 fo

5-8条

上述案例是预期结果。

当regex失败时,因为第4个和第5个字符是数字而不是字母,所以它失败了,这是正确的。问题是应该与第二组匹配的字符移动到下一个匹配组(serialSuffix),结果是:

匹配1

完全匹配0-8 abc33bar

null

3-3

3-8 33bar

如何防止在非匹配组(包括非匹配组)之后创建非匹配组和匹配组?

共有1个答案

欧阳昊阳
2023-03-14

如果第一组应为3个字符长,第二组应为2个字符长,最好在正则表达式中使用固定长度工作,则第二个示例将不匹配:

 ^(?<serialCode>[a-zA-Z0-9]{3})(?<serialMarket>[a-zA-Z]{2})(?<serialSuffix>[a-zA-Z0-9]*)$
 类似资料:
  • 问题内容: 说我的数据看起来像这样: 我可以创建一个正则表达式 要将名称,年龄和id匹配到第1组中,将peter,40、99匹配到第2组中。但是,我要迭代甚至选择地遍历这些组。例如, 如果group1值是id,我想进行其他处理。所以算法就像 我想做的第二件事就是跳转到匹配的group1的第三个实例,并获取键“ id”,而不是进行迭代。 问题答案: 使用FindAllStringSubmatch查找

  • 问题内容: 这个正则表达式模式: 产生以下结果: 如何删除“ cID =“? 谢谢 问题答案: 您可以使用lookbehind(不在Javascript中): 或者,您可以使用分组并获取第一个分组:

  • 我试图写一个正则表达式来匹配三个组,在三个组中,我希望有一个组是可选的。 正则表达式: 它匹配以下内容: 但是,不是在下面。 如何修改正则表达式,使其匹配两个组。如果第一条消息是三个组。 修复 测试 消息 如果是第二条消息,只有两组 < li >修复 < li >消息 消息

  • 我们得到了一些这样的内容:

  • 我有一个regex101正确工作的regex: 有2个匹配,如预期的。 现在我想用std的regex_token_iterator拆分相同的: 这可以很好地编译,但没有任何东西被打印到stdout。 我认为正则表达式必须以其他方式编写,你能指出我的错误吗?