regex - 正则表达式匹配 C 整数文字
问题描述
我想使用 egrep/grep -E 打印出 C 源文件中包含整数文字的行(如此处所述)。以下内容在大多数情况下都有效,除了它也匹配浮点数:
egrep '\b[0-9]+' *.c
有关如何解决此问题的任何建议?
解决方案
您可以使用否定的 Lookarounds 来确保数字后面没有或前面没有a .
:
\b(?<!\.)[0-9]+(?!\.)\b
编辑:
由于您只想匹配注释中提到的十六进制文字中的0
of 0x
,因此请改用以下模式。它的工作原理与您的原始正则表达式完全相同,只是它与浮点数不匹配。
\b(?<!\.)[0-9]+(?![\.\d])
在线尝试。
参考:
推荐阅读
- ios - 如何隐藏所有图像并仅显示我想要显示的选定图像?
- netlogo - 循环代码的特定部分而不丢失记录的变量
- c++ - 当我将代码分离到头文件时出现问题
- html - 尝试在 R 中进行网页抓取时创建多个数据框
- python - 在 Kivy 中使用 ToggleButton - 图像大小调整问题
- python - Plotly 表达 choropleth 墨西哥地图未显示
- python - 如何创建多个查询表单以使用 python 过滤 Excel 工作表?
- sql - 消息 245,级别 16,状态 1,第 58 行转换此 varchar 值时转换失败
- python - Python Luhn 算法
- javascript - 在 Chrome 中缩小背景图像像素化/锯齿中的 SVG 和 CSS 圆圈