gpt4 book ai didi

c# - 寻找特定的正则表达式

转载 作者:太空狗 更新时间:2023-10-29 22:29:45 25 4
gpt4 key购买 nike

我一直在寻求为我的具体情况创建一个正则表达式。我对 Regex 的了解有限,通过在 StackOverflow 上搜索得到的最远的是这个 Regex:

^[pP][a-zA-Z0-9- ]*

我正在寻找一个强制字符串为:

  • 以字母 'p' 或 'P' 开头,小写和大写
  • 不少于19个字符
  • 可能包含“-”、“%20”、“”或“+”
  • 以'0000'结尾
  • 在“p”和四个零以及“-”、“%20”、“”或“+”分隔符之间为字母数字

应该匹配正则表达式的字符串示例:

  • PLX000000000PQ50000
  • pLX000000000PQ50000
  • plx000000000pq50000
  • PLX-0000-0000-0PQ5-0000
  • PLX-0000-0000-0PQ50000
  • PLX+0000+0000+0PQ5+0000
  • PLX%200000%200000%200PQ5%200000
  • PLX 0000 0000 0PQ5 0000

我正在寻找的正则表达式是什么?我使用的语言是 C#

最佳答案

添加到@Zenoo 的回答中,如果您想将 %20 视为单次出现,您可以使用以下表达式:

[pP]([a-zA-Z0-9 +-]|(%20)){14,}0000

您基本上将 %20 作为单个事件添加到可能的字符列表中。

Here is the live demo , 你可以用它来测试你想要的所有例子(我已经包括了你提供的那些),以及所有需要的技术解释,我在下面复制:

  • pP 匹配列表 pP 中的单个字符(区分大小写)
  • 第一个捕获组 ([a-zA-Z0-9 +-]|(%20)){14,} {14,} 量词 —匹配次数在 13 到无限次之间,尽可能多,根据需要回馈(贪婪)
  • 1st Alternative [a-zA-Z0-9 +-] 匹配出现在下面的列表 [a-zA-Z0-9 +-] a-z 范围内的单个字符在 a(索引 97)和 z(索引 122)之间(区分大小写)
  • A-Z 介于 A(索引 65)和 Z(索引90) (区分大小写) 0-9 0之间范围内的单个字符(索引 48)和 9(索引 57)(区分大小写)
  • +- 匹配列表中的单个字符 +- (区分大小写)
  • 第二个备选方案 (%20) 第二个捕获组 (%20) %20 与%20 个字符(区分大小写)
  • 0000 匹配字符字面上的 0000(区分大小写)

关于c# - 寻找特定的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48784052/

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