regex - 有没有办法用 grep 从正则表达式组中排除最后一次出现的字符
问题描述
我想编写一个匹配以下行的正则表达式:
int func ( int argument, char* str)
for( int i = 0; i < 25; i++)
if( true )
但不是那些:
int func (int argument char* str)
for(int i = 0; i i < 25; i++)
if(true)
在字面上,我想匹配在左括号之后有任何空格或在右括号之前有任何空格的行。
我首先编写以下正则表达式:
grep -E '[^\(]\( [^ ] \)'
但它不起作用,因为括号之间可能存在有效空格。
我的问题是:有没有办法从正则表达式组中排除最后一次出现的字符?
解决方案
在字面上,我想匹配在左括号之后有任何空格或在右括号之前有任何空格的行。
您可以grep
交替使用它:
grep '([[:blank:]]\|[[:blank:]])' file
- 在默认
grep
正则表达式模式 (BRE) 中,无需转义(
和)
[[:blank:]]
匹配空格或制表符- 你需要
|
在 BRE中逃脱
推荐阅读
- reactjs - 除非手动重新加载页面,否则嵌入式 Facebook 不会使用 Gatsby 显示
- visual-studio - Visual Studio 2019 和 VS 2017 无法发现测试
- coding-style - 编写代码 Javascript 和其他语言
- networking - TCP 中 SEQ 和 ACK 不匹配
- java - 单击移动图像位置时的 GridView
- python - 从命令行运行时,在pycharm中运行的python脚本有内存分配错误
- c# - 构造函数链创建对象,但在调用者中为空
- r - 将从 PDF 读取的文本转换为 unnest_tokens 的可用格式?
- windows - 尝试在 Visual Studio Code 上保存/创建文件时出现“NoPermissions (FileSystemError): Error: EPERM: operation not allowed”
- c# - 这是一种搜索子字符串并忽略特定单元格的方法吗?C#