Regex 获取独立数字而非数字相关代码

Regex 获取独立数字而非数字相关代码,regex,Regex,我对regex还不熟悉,我花了相当多的时间在regex测试人员身上进行实验,搜索网页,等等。关于以下问题。我正在使用Python 3.7+ 文本字符串示例: ((AC00001234+AC00005678)/365)*(5+10) 注意-AC始终为大写,后跟8位数字 预期结果:一组符合以下项目的患者。更具体地说,任何和所有不带AC前缀的数字 365 五, 十, 虽然我尝试过的事情多得数不清,但我最接近于消极的落后(见下文)。问题在于,结果是00001234和00005678也被拉入。我尝试了

我对regex还不熟悉,我花了相当多的时间在regex测试人员身上进行实验,搜索网页,等等。关于以下问题。我正在使用Python 3.7+

文本字符串示例:

((AC00001234+AC00005678)/365)*(5+10)

注意-AC始终为大写,后跟8位数字

预期结果:一组符合以下项目的患者。更具体地说,任何和所有不带AC前缀的数字

  • 365
  • 五,
  • 十,
虽然我尝试过的事情多得数不清,但我最接近于消极的落后(见下文)。问题在于,结果是00001234和00005678也被拉入。我尝试了显式字符类[0-9],调整了一些分组,等等

当前代码:

(?)? 当前结果:

  • 00001234
  • 00005678
  • 365
  • 五,
  • 十,
关于堆栈溢出,我查看了以下内容: 和


为简单起见,我将解析分解为其他三个步骤(例如,仅提取AC前缀代码、数学运算符等),这是我需要解决的最后一个步骤。

显而易见的解决方法是:
(?-一组前面没有
AC
的数字。但是,这失败了,因为它匹配
0001234
,因为它前面有
0
,而不是
AC
。缺少的部分是,您还必须声明它前面没有数字:

(?<!AC)(?<!\d)\d+

但是,这比前两种解决方案更不清楚(还需要知道ACXXXXXXXX字符串的长度)。

显而易见的方法是:
(?-一组前面没有
AC
的数字。但是,这失败了,因为它匹配
0001234
,因为它前面有
0
,而不是
AC
。缺少的部分是,您还必须声明它前面没有数字:

(?<!AC)(?<!\d)\d+

但是,这比前两种解决方案更不清楚(还需要知道ACXXXXXXXX字符串的长度).

离题说明:感谢您在中提出了一个问题。您发布了测试用例,发布了您尝试过的内容,并且隔离了相关问题-绝大多数问题只是希望其他人为其编写正则表达式。欢迎使用Stack Overflow,您有了一个良好的开端。首先,感谢您提供了多种方法来解决此问题解决这个问题。它确实有助于尝试学习的人。基于这一点,您可以解释为什么我的解决方案不起作用,以及如何匹配(我的代码和您的解决方案)最后,我感谢你对我的职位结构的鼓励。学习有时会是一场真正的斗争,尤其是决定何时寻求帮助或自己多花些时间。我真诚地感谢这个社区愿意分享知识和互相帮助opic备注:感谢您在中提出了一个问得很好的问题。您发布了测试用例和您尝试的内容,并且隔离了相关问题-绝大多数问题只是希望其他人为它们编写正则表达式。欢迎使用Stack Overflow,您有了一个良好的开端。首先,感谢您提供了多种方法来解决此问题假设。这确实有助于尝试学习的人。基于这一点,您可以解释为什么我的解决方案不起作用,以及如何匹配(我的代码和您的解决方案)最后,我感谢你对我的职位结构的鼓励。学习有时会是一场真正的斗争,尤其是决定何时寻求帮助或自己多花些时间。我真诚地感谢这个社区愿意分享知识和相互帮助。
\d+(?<!AC\d{8})\b