2005年09月09日 星期五 22:16
问题描述: 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. 现在我有一个文件,里面可能出现如下多种情形: a*b*a a*b a*b*a*b*a*b*a a*b*b*b*a 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 大侠们帮忙,看看还有什么招?
2005年09月09日 星期五 23:04
这要使用"贪人匹配"和"懒人匹配"。 我给个例子,你可以参考参考,琢磨一下,我也是刚入门。不好意思! #!/usr/bin/perl $aa="a*b*b*b*a"; $aa=~m/a*(b.*)([*].*?)a$/; print "long char: $1"; 其中"贪婪匹配"是用".*",而"懒人匹配"是用".*?". 我写的这个可以找出a*b*a*b*a*b*a等等,但对a*b不行,我先写这个,你参考一下吧! 关于上面的那两个名字,是《Perl5编程核心技术》上的译文说明。 在05-9-9,gyb tension <tensiongyb at gmail.com> 写道: > > 问题描述: > 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. > 现在我有一个文件,里面可能出现如下多种情形: > a*b*a > a*b > a*b*a*b*a*b*a > a*b*b*b*a > 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) > 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. > 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. > 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 > 大侠们帮忙,看看还有什么招? > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050909/7bd540c0/attachment.htm
2005年09月09日 星期五 23:08
我晕,我竟用perl写的。 在05-9-9,boyeestudio <boyee118 at gmail.com> 写道: > > 这要使用"贪人匹配"和"懒人匹配"。 > 我给个例子,你可以参考参考,琢磨一下,我也是刚入门。不好意思! > > #!/usr/bin/perl > > $aa="a*b*b*b*a"; > > $aa=~m/a*(b.*)([*].*?)a$/; > > print "long char: $1"; > 其中"贪婪匹配"是用".*",而"懒人匹配"是用".*?". > 我写的这个可以找出a*b*a*b*a*b*a等等,但对a*b不行,我先写这个,你参考一下吧! > 关于上面的那两个名字,是《Perl5编程核心技术》上的译文说明。 > > > 在05-9-9,gyb tension <tensiongyb at gmail.com> 写道: > > > > 问题描述: > > 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. > > 现在我有一个文件,里面可能出现如下多种情形: > > a*b*a > > a*b > > a*b*a*b*a*b*a > > a*b*b*b*a > > 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) > > 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. > > 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. > > 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 > > 大侠们帮忙,看看还有什么招? > > > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050909/01680d40/attachment.html
2005年09月09日 星期五 23:17
搞得我很怀疑是不是进了Perl的社区了。 鸦来,yalai.mho at gmail.com 2005-9-9 ----- 收到以下来信内容 ----- 发件人: boyeestudio 收件人: tensiongyb,python-chinese 时 间: 2005-09-09, 23:08:48 主 题: Re: [python-chinese] [求助]规则表达式问题 我晕,我竟用perl写的。 在05-9-9,boyeestudio <boyee118 at gmail.com> 写道: 这要使用"贪人匹配"和"懒人匹配"。 我给个例子,你可以参考参考,琢磨一下,我也是刚入门。不好意思! #!/usr/bin/perl $aa="a*b*b*b*a"; $aa=~m/a*(b.*)([*].*?)a$/; print "long char: $1"; 其中"贪婪匹配"是用".*",而"懒人匹配"是用".*?". 我写的这个可以找出a*b*a*b*a*b*a等等,但对a*b不行,我先写这个,你参考一下吧! 关于上面的那两个名字,是《Perl5编程核心技术》上的译文说明。 在05-9-9,gyb tension <tensiongyb at gmail.com > 写道: 问题描述: 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. 现在我有一个文件,里面可能出现如下多种情形: a*b*a a*b a*b*a*b*a*b*a a*b*b*b*a 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 大侠们帮忙,看看还有什么招? _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050909/fb164435/attachment.htm
2005年09月10日 星期六 00:51
pat_b = ",,," ## b的pattern re.findall( pat_b + ".+?" + pat_b, s) 感觉没a什么事 Non-Greedy匹配 On 9/9/05, gyb tension <tensiongyb at gmail.com> wrote: > 问题描述: > 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. > 现在我有一个文件,里面可能出现如下多种情形: > a*b*a > a*b > a*b*a*b*a*b*a > a*b*b*b*a > 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) > 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. > 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. > 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 > 大侠们帮忙,看看还有什么招? > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > >
2005年09月10日 星期六 09:34
如何实现象 sqlserver 那样的dateadd(-1, day, getdate()) 函数的功能. 顺便谢谢上次帮我解答问题的friends! _________________________________________________________________ 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn
2005年09月10日 星期六 10:16
在 05-9-10,王伟 王伟<buttonww at hotmail.com> 写道: > 如何实现象 sqlserver 那样的dateadd(-1, day, getdate()) 函数的功能. > 顺便谢谢上次帮我解答问题的friends! > 查一下datetime模块,使用timedelta类就可以了。 -- I like python! My Donews Blog: http://www.donews.net/limodou
2005年09月10日 星期六 18:56
任意一串字符怎么表示? 我试[.\n]*不行, >>>re.findall(r'[.\n]*','kfdj') ['', '', '', '', ''] 是为什么呢? 在05-9-9,gyb tension <tensiongyb at gmail.com> 写道: > > 问题描述: > 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. > 现在我有一个文件,里面可能出现如下多种情形: > a*b*a > a*b > a*b*a*b*a*b*a > a*b*b*b*a > 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) > 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. > 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. > 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 > 大侠们帮忙,看看还有什么招? > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050910/a5cde23a/attachment.htm
2005年09月10日 星期六 23:56
你知道这个正则表达式的意思吗? r'[.\n]*' 首先[],表示几个里面取一个,这里表示在.和\n里面取,由于有了[],因此原本就不需做escape,因此这里的.表示.而不是任意字符了。 然后*,表示一个或者多个。 所以这个正则表达式的意思是,找0个或多个连续的.或\n。 为了便于学习re,给你一个函数,你可以用这个试试 def disp_pat(pat, s, count = 0) : def mark(m) : return '<' + m.group() + '>' result = re.sub(pat, mark, s, count) return result On 9/10/05, gyb tension <tensiongyb at gmail.com> wrote: > 任意一串字符怎么表示? > 我试[.\n]*不行, > >>>re.findall(r'[.\n]*','kfdj') > ['', '', '', '', ''] > 是为什么呢? > > > 在05-9-9,gyb tension <tensiongyb at gmail.com> 写道: > > 问题描述: > > 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. > > 现在我有一个文件,里面可能出现如下多种情形: > > a*b*a > > a*b > > a*b*a*b*a*b*a > > a*b*b*b*a > > 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) > > 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. > > 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. > > 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 > > 大侠们帮忙,看看还有什么招? > > > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > >
2005年09月11日 星期日 00:11
没仔细看你的信,乱回了一封。这里解决你的问题 ^表示行的开头 $表示行的结尾 所以一行用 ^.*$ 不过很遗憾,这样却不行。 前一封信里给了你一个函数,你用这个函数研究一下,看看为什么不行。自己研究得出的结果远比别人说的印象深。 On 9/10/05, gyb tension <tensiongyb at gmail.com> wrote: > 任意一串字符怎么表示? > 我试[.\n]*不行, > >>>re.findall(r'[.\n]*','kfdj') > ['', '', '', '', ''] > 是为什么呢? > > > 在05-9-9,gyb tension <tensiongyb at gmail.com> 写道: > > 问题描述: > > 有2个规则表达式a和b,b是a的子集,就是说满足b的也满足a,满足a不一定满足b. > > 现在我有一个文件,里面可能出现如下多种情形: > > a*b*a > > a*b > > a*b*a*b*a*b*a > > a*b*b*b*a > > 等等...(*代表其它乱七八糟的字符,其中a和b出现的次数也没准) > > 我想把其中以b打头且b结尾的那一段取出来,中间有a要保留,但两头的a必须去掉. > > 我要搜索b,中间的a就丢了,先搜索b,再搜索a,就有可能加入多余的a. > > 我觉得这个逻辑问题好像要转化为实际操作问题,re模块好像没有能够同时判断两种属性的方法 > > 大侠们帮忙,看看还有什么招? > > > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050910/a0c05441/attachment.html
Zeuux © 2025
京ICP备05028076号