regex - 正则表达式:将 \r\n 作为普通单词处理
问题描述
我正在做一个小项目,可以计算 C++ 文件(.cpp)中函数的数量。
我使用以下正则表达式作为“函数模式”:
/[a-z|A-Z]+\s*::\s*~?[a-z|A-Z]+\(.*\)/gm
它适用于大多数情况,但在 () 中有新的换行符时会失败。
void CXYZRScanPanel::OnPrepareScanning()
{
//This one is ok.
}
void CXYZRScanPanel::OnPrepareScanning(int k)
{
//This one is ok.
}
void CXYZRScanPanel::OnPrepareScanning(int k,
int j)
{
//This one fails.
}
我在想是否有任何比 .* 更“强大”的东西可以跳过 \r\n。谢谢你的帮助。
如果没有这样的事情,我可能会在执行此操作之前删除 () 中的所有 /r/n。
解决方案
推荐阅读
- spring-boot - 嵌入在 Spring Boot Rest API 中的 Spring Cloud Gateway
- c# - Regex.IsMatch 导致灾难性的回溯
- excel - 使用 VBA 创建的 Excel 复选框不成比例
- java - 屏幕更改时的Libgdx,套接字事件仍在前一个屏幕中运行
- java - maven-assembly-plugin 被忽略了吗?
- heroku - 有没有办法在 Heroku 上运行 ssh 命令?
- reactjs - 从 3.3.0 降级回 3.2.0 后的 Create-react-app linting 警告
- javascript - 过期后设置字段(MongoDB)
- python - raise ApiClientException(message) geolocation.exceptions.ApiClientException: 请求被拒绝
- sql - 从 Excel 97-2003 导入 SQL