gpt4 book ai didi

regex - 数字前仅允许文本和多个 0,不允许 [1-9]

转载 作者:行者123 更新时间:2023-12-03 00:18:58 26 4
gpt4 key购买 nike

我正在尝试将 Excel 文件中的文档编号与文件夹中的文件进行匹配。

示例文件目录:

A)“C:\Users\directory\Supplier\Invoice1.pdf”

B) “C:\Users\directory\Supplier\Invoice001.pdf”

C)“C:\Users\directory\Supplier\Invoice101.pdf”

D) “C:\Users\directory\Supplier\Invoice10.pdf”

E)“C:\Users\directory\Supplier\Invoice21.pdf”

我的正则表达式模式匹配 A、B 和 C,但应该只匹配 A 和 B。

模式 = "(^|[^1-9])(DocNumber)([^0-9]|$)",在我的示例中,DocNumber = 1(也可以是任何其他数字)。

关于如何改进我的公式以使其不匹配 C 有什么想法吗?

注意:我发现与此类似的其他线程不受欢迎,因此我尝试澄清我的问题,因为其他线程没有为我提供解决方案。

最佳答案

尝试这样的事情:^.*[\\\/][^0-9]*0*1\..*$

示例如下:https://regex101.com/r/O7RdEq/4

说明:

  • ^.*[\\\/] - 匹配最后一个斜杠之前的所有内容
    • [\\\/] - 匹配单个反斜杠或单个正斜杠;请注意,两个斜杠都使用反斜杠进行转义。
  • [^0-9]*0*1\..*$ - 匹配所有非数字(包括任何前导“0”),后跟文档编号,然后是文件扩大
    • [^0-9]* - 匹配可选“0”之前的任何非数字;防止像“101”这样的情况
    • 0*1 - 文档编号前可选的“0”(本例中为 1)
    • \..*$ - 匹配文字 .,然后是任何字符,直到行尾;应该处理文件扩展名。

0* 后面的 1 是您在问题中提到的文档编号。

关于regex - 数字前仅允许文本和多个 0,不允许 [1-9],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com