gpt4 book ai didi

c# - 正则表达式可能吗?

转载 作者:行者123 更新时间:2023-11-30 20:01:04 24 4
gpt4 key购买 nike

我正在解析一个我想提取特定字符串的文件。

该字符串将以一定长度的空格开头,后跟:

  • 一个 H 后跟 8 个十六进制数

  • 一个 G 后跟 9 个十六进制数

后跟回车符和换行符。

我是否可以创建一个等价于“如果字符是 H,则跳过 8 个字符,否则如果字符是 G,则跳过 9 个字符”或者更简单的“如果字符是H,跳过 8 个字符,否则跳过 9 个字符。

我目前使用的与 H 配合良好的正则表达式是 @"\s+H.{8}(? <user> .*)\r\n",但我很困惑在添加条件字符数时。例如,如果有像 [H|G].{8|9} 这样的语法,那就太好了,但我认为这实际上并不存在于正则表达式语法中。

最佳答案

根据我的评论,我只是详细阐述了你的意见

\s+((H.{8})|(G.{9}))(?<user>.*)\r\n

Regular expression visualization

Debuggex Demo

由于 Regex 对应于有限状态自动机,因此很容易看出为什么这是微不足道的,在读取 H 时我们进入一种状态,G 进入另一种状态。

关于c# - 正则表达式可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642318/

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