Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex lex中double的正则表达式_Regex_Lex_Flex Lexer - Fatal编程技术网

Regex lex中double的正则表达式

Regex lex中double的正则表达式,regex,lex,flex-lexer,Regex,Lex,Flex Lexer,我在用lex写计算器,需要一个正则表达式来识别双精度。应该怎样写?它应该类似于[[0+[0-9][0-9]*].[0-9]+][1-9][0-9]*,但不能在lex中工作 示例输入为任意双精度或整数(将转换为双精度)我发现了一些问题: 空格在正则表达式中很重要:请删除它们 方括号([])表示字符类,而不是分组。使用括号进行分组 句点字符()匹配任何内容,我相信您的意图是 若要仅匹配句点字符(小数点),则需要使用 反斜杠 所以将正则表达式改为 ((0+[0-9][0-9]*)\.[0-9]+)+[

我在用lex写计算器,需要一个正则表达式来识别双精度。应该怎样写?它应该类似于
[[0+[0-9][0-9]*].[0-9]+][1-9][0-9]*
,但不能在lex中工作

示例输入为任意双精度或整数(将转换为双精度)

我发现了一些问题:

  • 空格在正则表达式中很重要:请删除它们

  • 方括号(
    []
    )表示字符类,而不是分组。使用括号进行分组

  • 句点字符(
    )匹配任何内容,我相信您的意图是 若要仅匹配句点字符(小数点),则需要使用 反斜杠

  • 所以将正则表达式改为

    ((0+[0-9][0-9]*)\.[0-9]+)+[1-9][0-9]*
    
    并从此点进行调试


    另外,我不确定您是否理解加号(
    +
    )和管道字符(
    |
    )之间的区别,加号字符表示一次或多次重复,管道字符表示或。

    您能给出一些输入示例吗?你希望你的模式匹配什么,你希望它不匹配什么;Flex适用于ADobe/ApacheUI框架。“Flex”的标记提示中提到了这一点。贴标签时请注意;谢谢,对不起。我不小心把它包括进去了。