regex - Unix egrep 命令如何创建一个模式来匹配以下内容?

标签 regex unix command-line grep pattern-matching

我想问一下egrep中的反向引用。

我有一个文件,它包含:

aa aa someothertext

and there are something like 77 77

如何使用反向引用来匹配模式“aa aa”和“77 77”?

我尝试过:

egrep '(aa )\1' file.txt

它将匹配“aa aa”。然后。我尝试将 'aa' 替换为 ' ([a-zA-Z0-9])\1',结果是:

egrep '(([a-zA-Z0-9])\1 )\1' file.txt

这不会起作用。

如果您能提供帮助,我将不胜感激!

最佳答案

请记住,捕获组通过其左括号进行索引:您在定义第一个组之前调用了它。

((a)b)中,\1指的是(a)b\2a

要解决此问题,您可以使用正确的索引:

(([a-zA-Z0-9])\2 )\1

关于regex - Unix egrep 命令如何创建一个模式来匹配以下内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23139531/

相关文章:

bash - 使用 grep 和 cut delimiter 命令(在 bash shell 脚本 UNIX 中)- 和 "reversing"一样吗?

c - sscanf 扫描格式化文件时出错

shell - Ping 和启动程序

java - 将 php 正则表达式转换为 java 正则表达式

Javascript 匹配改变不同数组的值

linux - 替换匹配行中的某些位置

random - Phing exec 任务中的管道

mysql - 登录 MySQL 后运行系统命令

php - 正则表达式从最后一个开始提取所有特定长度的数字

python正则表达式在字符串中查找/匹配一个或多个