regex - flex如何匹配行 anchor 的开头?

标签 regex algorithm flex-lexer finite-automata nfa

我一直想知道输入 anchor (^)的开头是如何在flex中转换为FSA的。我知道行尾 anchor ($) 与表达式 r/\n 匹配,其中 r 是要匹配的表达式。输入 anchor 的开头是如何匹配的?我看到的唯一解决方案是使用启动条件。如何在程序中实现?

最佳答案

行尾标记 $\n 的不同之处在于它也匹配 EOF,即使行尾在文件末尾找不到标记 \n\r\n

我没有看 flex 的实现,但我会使用 bool 标志实现 ^$^ 标志将被初始设置,然后在一行中的第一个字符后重置为 false,然后在下一个结束后设置回 true线标记等。

关于regex - flex如何匹配行 anchor 的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127310/

相关文章:

string - 使字符串的所有可能组合的最佳算法是什么?

python - 如何根据 Python 中的分隔符从 pandas 数据框列中的值创建新行?

在螺旋中查找特定元素坐标的算法

java - 给定两个数组列表,如何计算有效组合数?

c++ - Bison-3.0.4 'make check' 中的 Linux From Scratch 错误

c - Flex 在 C 中使用管道

javascript - 将命令的标准输出解析为可用的 javascript 对象的最智能方法是什么

javascript - 动态选项卡 - 加载多个子项 PER 选项卡

regex - .Net 3.5 Regex.IsMatch 中的句点

c - 负数的 GNU Flex 正则表达式