首页 > 解决方案 > 正则表达式匹配 C 整数文字

问题描述

我想使用 egrep/grep -E 打印出 C 源文件中包含整数文字的行(如此所述)。以下内容在大多数情况下都有效,除了它也匹配浮点数:

egrep '\b[0-9]+' *.c

有关如何解决此问题的任何建议?

标签: regexgrep

解决方案


您可以使用否定的 Lookarounds 来确保数字后面没有或前面没有a .

\b(?<!\.)[0-9]+(?!\.)\b

编辑:

由于您只想匹配注释中提到的十六进制文字中的0of 0x,因此请改用以下模式。它的工作原理与您的原始正则表达式完全相同,只是它与浮点数不匹配。

\b(?<!\.)[0-9]+(?![\.\d])

在线尝试

参考:


推荐阅读