提取多行模式SED或AWK

时间:2012-06-18 14:45:55

标签: regex sed awk grep pcre

希望sed或awk大师可以帮助我。我需要匹配多行模式,其中模式范围可以跨越一到三行。我无法使用pcregrep得出结果!我想要实现的模式有点像这样=>

\s*\w+\s\w+\([A-Za-z,]*\)\s*\;\{

事实是,在单词或分号后,下一行模式可以或不可能出现在下一行中,模式也可以出现在一行中,具体取决于文件。

提前感谢您的回复。我已经坚持了这一步近一个星期!任何建议都赞赏:)

  

例如:苹果橙(李子);奇异果{

     

OR

     苹果橙(李子);

     

猕猴桃

     

{

匹配两个表达式的表达式。

1 个答案:

答案 0 :(得分:2)

\s*(\w+)\s+(\w+?)\((\w+)\);\s*(\w+)\s*{

你们非常接近。确保在使用正则表达式时设置MULTILINE标志以确保它在多行之间匹配。这将匹配字符串中的所有四个单词。根据你的例子,

第1组:apple

第2组:orange

第3组:plum

第4组:kiwi

You can play with the regex here