我需要过滤所有以字母开头,后跟零个或多个字母或数字,但没有特殊字符(基本上可以用于C++变量的名称)的行。正则表达式Unix shell脚本
egrep '^[a-zA-Z][a-zA-Z0-9]*'
这工作正常的话,如“一”,“AB10”,但它也包括像“b.b”字样。我明白,表达式的结尾是问题。如果我用+(一个或多个)替换*,它会跳过只包含一个字母的单词,所以它不起作用。编辑: 我应该更精确。我想找到任意数量的可能单词的行,如上所述。下面是一个例子:
int = 5;
cout << "hello";
//some comments
在这种情况下,它应该打印所有上面的行的,因为它们都包括适合所描述的条件,并且线不必开始与字母至少一个词。
这里的一个问题是^指的是一行的开始,但是你对任何包含单词的行感兴趣。我建议编辑。 – JXG 2009-11-01 13:35:38