gpt4 book ai didi

regex - Lex : Breaking up long regular expressions over multiple lines

转载 作者:行者123 更新时间:2023-12-03 08:28:33 25 4
gpt4 key购买 nike

在.l文件中的多行上打破长lex正则表达式的正确语法是什么?

例如,说我有一个正则表达式,例如:

word1|word2|word3|word4  ECHO;

当我尝试这样做时:
word1|word2|
word3|word4 ECHO;

我得到一个错误。在lex的多行中分解正则表达式的正确方法是什么?

最佳答案

通过flex(作为标准lex语法的扩展),您可以使用(?x:…)语法,类似于PCRE/Perl扩展语法。请注意,与PCRE不同,x标志所应用的文本用括号括起来。 [注1]。
在括号内,注释和空格将被忽略,除非将其转义或引用。所以你可以这样写:

(?x:
word1 |
word2 |
word3 |
word4 ) ECHO;
注意:此语法不能在“定义”部分中使用,只能在“规则”部分中使用。我不知道这是设计使然,还是 future 的增强功能可能会解除限制。
有关更多详细信息,请参见 flex manual。 (在以“(?r-s:pattern)”开头的部分中)

笔记
  • 在PCRE(即python)中,您将编写(?x) --- extended regex,并且扩展将一直持续到正则表达式的末尾,除非您将其关闭。我什至不会尝试解释Perl用于检测扩展正则表达式结尾的规则。
  • 关于regex - Lex : Breaking up long regular expressions over multiple lines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34842970/

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