c++ - 迭代正则表达式匹配

标签 c++ regex parsing

我们已经相当擅长生成各种正则表达式来匹配输入字符串,但是我们被要求尝试迭代地验证这些字符串。有没有一种简单的方法可以将输入字符串与正则表达式进行迭代匹配?

以下面的正则表达式为例:

[EW]\d{1,3}\.\d

当用户输入“E123.4”时,满足正则表达式。我如何在用户键入时验证用户的输入?我可以将字符串“E1”与正则表达式部分匹配吗?

有没有什么方法可以说输入字符串只部分匹配输入?或者有没有一种方法可以根据字符串长度自动从主表达式中生成子表达式?

我正在尝试创建一个通用函数,它可以采用任何正则表达式并在用户输入不符合该表达式的内容时立即抛出异常。我们的表达式在事物的宏伟计划中相当简单,我们当然不会尝试解析 HTML :)

提前致谢。 大卫

最佳答案

您只能通过将正则表达式的每个部分设为可选并重复自己来做到这一点:

^([EW]|[EW]\d{1,3}|[EW]\d{1,3}\.|[EW]\d{1,3}\.\d)$

这可能适用于简单的表达式,但对于复杂的表达式来说这几乎不可行。

关于c++ - 迭代正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758566/

相关文章:

C++将char数组传递给函数

c++ - 如何在 Linux 系统上以编程方式清除 C++ 中的文件系统内存缓存?

regex - 查找正则表达式中双引号之间的所有CR或LF(只需输入)

javascript - 密码中允许使用多个特殊字符

java - 固定长度文件中的多个长度="unbounded"

c++ - 从命令行创建通用对象

python - 使用 OpenCV 的 Python 和 C++ 计算基本矩阵的不同结果

python - 从 python panda 数据框中的大量文本中逐行删除 URL

python - 有没有办法自动生成有效的算术表达式?

ios - 将 XML 解析为 NSDictionary