帆张芳显 2024-10-21 23:18 采纳率: 33.3%
浏览 2
已结题

尝试修改一个正则表达式

需要写一个正则表达是,匹配字母+数字组合,但要排除 在左括号前面的连续的字母+数字组合这种情况,如
ABS34(ERSG325))EAD5)
需要 匹配出来 ERSG325 和 EAD5,但不能匹配 ABS34 ,目前写的正则 [A-Za-z]+[0-9]+(?!() 达不到要求,有熟悉的给指点下吗?

  • 写回答

1条回答 默认 最新

  • 无疆76 2024-10-21 23:19
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要匹配字母和数字的组合,但要排除在左括号前的连续字母和数字组合,你可以使用以下的正则表达式:

    \b([A-Za-z]+\d+)\b(?!\([^)]*\))

    这个正则表达式的解释如下:

    1. \b:表示单词的边界。
    2. ([A-Za-z]+\d+):匹配一个或多个字母后面跟着一个或多个数字的组合。
    3. \b:再次表示单词的边界。确保匹配的是一个完整的单词(或组合)。
    4. (?!\([^)]*\)):是一个负向前瞻断言,确保当前匹配的内容后面不是跟着一个左括号和任何数量的非右括号字符(即确保没有匹配的内容是在括号内的)。

    使用这个正则表达式应该能够匹配到 ERSG325EAD5,但不会匹配到 ABS34

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月29日
  • 已采纳回答 10月21日
  • 创建了问题 10月21日