C# 是否识别以 0-9 以外的数字开头的数字?

华莱士

在 C# 中,如果词法标记以字母或下划线开头,则被识别为标识符或关键字,如果以数字开头,则被识别为数字。

在此上下文中的字母不限于[A-Za-z]; 它可以是任何 Unicode 字母,由char.IsLetter.

[0-9]为了识别数字文字,是否有任何外部字符类似地被识别为数字?

帕特里克·霍夫曼

答案是否定的,但它比这更复杂。

如果你看一下语言规范,你就会明白我的意思:

integer_literal
    : decimal_integer_literal
    | hexadecimal_integer_literal
    ;

decimal_integer_literal
    : decimal_digit+ integer_type_suffix?
    ;

decimal_digit
    : '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
    ;

integer_type_suffix
    : 'U' | 'u' | 'L' | 'l' | 'UL' | 'Ul' | 'uL' | 'ul' | 'LU' | 'Lu' | 'lU' | 'lu'
    ;

hexadecimal_integer_literal
    : '0x' hex_digit+ integer_type_suffix?
    | '0X' hex_digit+ integer_type_suffix?
    ;

hex_digit
    : '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
    | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f';

如您所见,+or-不是整数文字规范的一部分,因此对于此规则的开头,它始终需要一个数字(0-9对于十进制整数,和0,后跟x对于十六进制整数)。

规则解析比仅仅检查第一个字符以确定要遵循哪个规则更复杂。阅读 ANTLR 前瞻方法(LL(*))会让你学到很多。简单地说,整个规则必须解析,否则将无法解析该规则。它不仅仅基于规则的开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查数字是否以0或00开头

来自分类Dev

C随机矩阵,数字在0到9之间

来自分类Dev

数字开头的Javascript 0

来自分类Dev

Python中的正则表达式:“ \ d +”和“ [0-9] +”不仅可以识别数字和数字,还可以识别运算符?

来自分类Dev

c#正则表达式包含“ 9位数字”并以“ 07”开头

来自分类Dev

如何在C中读取以空格分隔的0-9位数字?

来自分类Dev

在PHP对其进行自动octdec()转换之前,是否有办法知道数字是否以0开头?

来自分类Dev

无法识别的选择器已发送到实例0x8c9a6d0

来自分类Dev

以0开头的console.logging数字

来自分类Dev

关于以0开头的“ int”数字的说明

来自分类Dev

以0开头的数字的int()有什么作用?

来自分类Dev

以0开头的console.logging数字

来自分类Dev

关于以0开头的“ int”数字的说明

来自分类Dev

C#LINQ如何检查变量是否以“ M ####”开头,其中#是数字

来自分类Dev

在Android EditText中拦截数字0到9

来自分类Dev

在opengl圈子中随机排列数字0-9

来自分类Dev

从DataFrame中删除包含0到9之间的数字的行

来自分类Dev

在字符串中查找数字(0-9)的频率

来自分类Dev

呼叫目录扩展 CallKit 无法识别超过 9 位的数字

来自分类Dev

匹配除“ -0”以外的任何数字(或负数)

来自分类Dev

匹配除“ -0”以外的任何数字(或负数)

来自分类Dev

检查数组元素中的所有数字是否为0或1 [c ++]

来自分类Dev

找出数字是否以2开头的更快方法?

来自分类Dev

HTML输入仅接受0-9(英文数字)和০-৯(孟加拉文数字)?

来自分类Dev

输入 0 - 9 的四位数字并生成四 (4) 位数字的新组合,

来自分类Dev

我如何获得数字 0-9 的直接相反数字

来自分类Dev

将数字四舍五入到前3个数字(以数字!= 0开头)

来自分类Dev

Excel 2010-如何在数字前加上“ 0”使8位数字变为9位数字

来自分类Dev

如果前导0后面的数字是8或9,Scanf不会读取前导0。

Related 相关文章

  1. 1

    检查数字是否以0或00开头

  2. 2

    C随机矩阵,数字在0到9之间

  3. 3

    数字开头的Javascript 0

  4. 4

    Python中的正则表达式:“ \ d +”和“ [0-9] +”不仅可以识别数字和数字,还可以识别运算符?

  5. 5

    c#正则表达式包含“ 9位数字”并以“ 07”开头

  6. 6

    如何在C中读取以空格分隔的0-9位数字?

  7. 7

    在PHP对其进行自动octdec()转换之前,是否有办法知道数字是否以0开头?

  8. 8

    无法识别的选择器已发送到实例0x8c9a6d0

  9. 9

    以0开头的console.logging数字

  10. 10

    关于以0开头的“ int”数字的说明

  11. 11

    以0开头的数字的int()有什么作用?

  12. 12

    以0开头的console.logging数字

  13. 13

    关于以0开头的“ int”数字的说明

  14. 14

    C#LINQ如何检查变量是否以“ M ####”开头,其中#是数字

  15. 15

    在Android EditText中拦截数字0到9

  16. 16

    在opengl圈子中随机排列数字0-9

  17. 17

    从DataFrame中删除包含0到9之间的数字的行

  18. 18

    在字符串中查找数字(0-9)的频率

  19. 19

    呼叫目录扩展 CallKit 无法识别超过 9 位的数字

  20. 20

    匹配除“ -0”以外的任何数字(或负数)

  21. 21

    匹配除“ -0”以外的任何数字(或负数)

  22. 22

    检查数组元素中的所有数字是否为0或1 [c ++]

  23. 23

    找出数字是否以2开头的更快方法?

  24. 24

    HTML输入仅接受0-9(英文数字)和০-৯(孟加拉文数字)?

  25. 25

    输入 0 - 9 的四位数字并生成四 (4) 位数字的新组合,

  26. 26

    我如何获得数字 0-9 的直接相反数字

  27. 27

    将数字四舍五入到前3个数字(以数字!= 0开头)

  28. 28

    Excel 2010-如何在数字前加上“ 0”使8位数字变为9位数字

  29. 29

    如果前导0后面的数字是8或9,Scanf不会读取前导0。

热门标签

归档