java - C 相当于 java.util.regex

标签 java c regex

我用 Java 构建了一个程序来将汇编代码转换为机器代码,我正在使用这个正则表达式来完成它:

^((?<label>.*):)?\s*(?<instruction>\w+)(\s+(?<op1>\w+))?(\s+(?<op2>\w+))?(;\s+(?<comment>.*))?$

我尝试使用标准的 regex.h,如果我取出组名,它会编译但不起作用,因为可选组 ()? 被视为选择组...

在 Google 中搜索真的很难,因为一切都是关于 C# 而不是 C。我知道 Java、Python、JavaScript 甚至 C# 会让我的生活更轻松,但我需要用 C 来做。如果我不能使用正则表达式,它将成为一个 sscanf 挑战。

有没有办法将这个正则表达式转换为 C 正则表达式,或者有一个 C 等价的 java.util.regex

最佳答案

我在使用 PCRE 时运气不错对于来自 C 或 C++ 的复杂正则表达式。 它被广泛使用并且合规。它曾经在 unicode 数据方面存在一些问题,但现在看起来其中一些问题已得到解决。

PCRE 支持使用 pcre_copy_named_substring 函数在您的示例中使用的命名捕获。

关于java - C 相当于 java.util.regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33336868/

相关文章:

JavaDocs 选项在我的 Eclipse 项目菜单中不可见

java - 检查字符串是否为有效数字的逻辑

java - 如何使用 JDK 1.6 编译与 JDBC 3.0 兼容的源代码?

c - 链表C中的无限while循环

c - 'vaGetDisplay' 和 `vaGetDisplayDRM' 的错误

c++ - C/C++ GUI 应用程序的自动化测试

python - 正则表达式排除特定模式python

php - 寄存器路由中的正则表达式不适用于参数

java - 连接python套接字和java套接字

regex - 使用正则表达式替换时,如何保留匹配字符串的一部分?