gpt4 book ai didi

c# - 如何编写正则表达式以将 HEX 值与变量声明相匹配?

转载 作者:太空宇宙 更新时间:2023-11-03 12:11:49 25 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式来匹配可能包含以下内容之一的字符串:

  1. 有效的十六进制数 - 例如“0xa4”(0[xX][0-9a-fA-F]+)
  2. 变量定义 - 例如,“$my_var”(\$[0-9a-zA-Z_]+)
  3. 项目#1 和#2 的组合 - 例如,“0xa$my_var”(??)

我试过:

^(?:0[xX][0-9a-fA-F]+|\$[0-9a-zA-Z_]+)$ - 但这不支持规则#3

^(?:0[xX][$0-9a-zA-Z]+)$ - 它支持所有条件,但也匹配 0x1z 这当然是不是有效的 HEX(违反规则#1)

寻求社区的帮助...

最佳答案

您可以使用基于锚定交替组的正则表达式,其中一个分支包含两种模式,其中一个是可选的:

^(?:0[xX][0-9a-fA-F]+(?:\$[0-9a-zA-Z_]+)?|\$[0-9a-zA-Z_]+)$

参见 regex demo

详情

  • ^ - 字符串的开始
  • (?: - 非捕获组的开始:
    • 0[xX][0-9a-fA-F]+ - 0xX, 1+ 个十六进制字符
    • (?:\$[0-9a-zA-Z_]+)? - $ 字符和 1+ 个单词字符的可选序列
  • | - 或
    • \$ - $ 字符
    • [0-9a-zA-Z_]+ - 1+ 个单词字符
  • ) - 非捕获组结束
  • $ - 字符串结尾。

关于c# - 如何编写正则表达式以将 HEX 值与变量声明相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51843171/

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