gpt4 book ai didi

c# - 允许在 C# 正则表达式模式中使用星号和问号

转载 作者:行者123 更新时间:2023-12-02 21:28:42 25 4
gpt4 key购买 nike

问题: 在 C# 正则表达式中,我应该将 *\*\\* 放在哪里匹配目标中星号的模式?

同上 \?\\?

详细信息...

我有一个允许这种输入的应用程序

  • 一个或两个十六进制字符:0-9、或 a-f、或 A-F
  • 然后是强制逗号:,
  • 然后是可选的空白(根据需要或多或少,或无):

速记描述...

0,F, 以及 00,FF,忽略字母的大小写。前后可选空格都可以。分隔时需要逗号,但末尾不允许使用逗号。 (最后一个字符必须是空格或文本结尾)

此后,该模式可以根据用户需要重复多次。 (空白不必平衡。)

示例...

 00, F1, 33, A7,    21, 14, 0D, 0A, 30,30,30,31, 41,    3e,3e,3e,  41, 5A,   0 

以下代码非常适合此...

 private bool See_If_This_Input_Is_Okay(string The_Callers_Text)
{
String pattern = @"^\s*([0-9A-Fa-f]{1,2},\s*)*[0-9A-Fa-f]{1,2}\s*$";

bool matches = Regex.IsMatch(The_Callers_Text, pattern);

return (matches);
}

现在我希望模式能够适应...

  • 一个或两个相邻的星号:***,然后是强制逗号:,
  • 一个或两个相邻的问号,可以是:???,然后是强制逗号:,

速记描述...

0,F,00,FF*,**,?,??,

(同样在每个字符串之前和之后[但不在]每个字符串中使用零到随机空格,强制使用逗号)

示例...

00, ??, 33, A7,    21, 14, ?,?, 30,30,30,31, **,    3e,3e,3e,  *, 5A,   0 

在这里阅读了 20 或 30 篇类似的帖子后,我仍然无法弄清楚在 模式中将 \*\? 序列放置在哪里代码 > 字符串。

我也尝试了 \\* 但一无所获。

包括括号内的f之后、$之前、s*之后(任一者);我想我可以对我的文本编辑器进行编程,制作相关行的五十一个副本,并尝试每个位置;但我真的很想理解这一点,而不仅仅是让它发生。

如果有人可以解释什么去哪里,谢谢,那就行了。我真正想知道的是在哪里对此进行解释和记录。我将省略我访问过的十几个旨在解释这一点的网页。

感谢所有能够回答这个问题的人。

最佳答案

您的正则表达式中有两个字符类[]。只需将 *? 字符放在两个字符类中,它就应该适合您。

^\s*([0-9A-Fa-f*?]{1,2},\s*)*[0-9A-Fa-f*?]{1,2}\s*$
^^ ^^

关于c# - 允许在 C# 正则表达式模式中使用星号和问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22820656/

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