type1:
functionName (paramA1, paramA2) ;
type2:
functionName (paramA3,
paramA4) ;
也就是说,要在代码中找到函数调用点。
对于type1来说,
我匹配函数开头部分[functionName (] 和结尾部分[) ;]就可以了。
对于type2来说,
如何在一个正则表达式中匹配多行呢?
应用在linux下的sed中的脚本匹配。
谢谢各位高手指教一二。
问了一天了没人回,自己顶一下。是不是我问错地方了?
up帮顶
确实没问到最合适的地方,你可以去脚本区去问问。
sed的话,可能比较麻烦,如果是perl或者shell,都会比较容易解决。
如果是sed,可以试一下这样:
sed '/*(/,/)/p' filename
瞎写的,只是说明可以处理多行,剩下的你慢慢研究吧。
原来问到了linux区,回答的人不多。所以转到脚本这里问问有没有高手弄1 下。
谢谢x86(大雪) 了。
用perl
可以把行分隔符从"\n"变成";"
#!/usr/bin/perl
$/ = ';'; #可以把行分隔符从"\n"变成";"
while(<>){
print "[$1] [$3]\n"; if(/\w+\:\s+(\w+)\s*\((.|\n)*?(\)\s*;)$/m);
}
to xyzxyz1111
我和经理沟通过。他说perl懂得人少。将来不好修改。就让我用sed。
所以没办法。我只好想办法了。
会perl的人比会sed的人多吧。。。
再说了,如果是要忽略\n来匹配,使用 m///s 就可以了啊~
看看perldoc perlre,或者《Perl Best Practices》中关于modifiers的说明就可以了。
perl的正则匹配中可以在末尾添加"s",如:
str =~m/test/s,这样就可以对多行字符串进行匹配
友情提示:这类问题可以去cu论坛中问,那边perl牛人相对多些
是在没有办法可以用土一点的办法啦。首先遍历一遍文本,将type2转化成type1的形式,然后再匹配,就可以使用单行匹配方式。因为type1和typ2都比较简单,这样做应该也可以。
是不是我又问错地方了。
各位大哥,我其实想问下正则语句如何跨行匹配。
到底哪个地方能回答我的问题呢?
至少有三个人回答了你的问题了。真不知道你是不是用心看过别人的回贴,
难道自己也没有试一下?或者看看perldoc?学perl怎么可以这么……
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 一个 字符串 匹配 使用 如何 可以 perl sed 办法 地方 |
注册
个人空间
