2006年09月14日 星期四 09:22
大家好; 仍然有个问题是非常困惑的,在Python中如何区分作为Metacharactor的括 号和普通的括号呢?我在正则表达式工具中使用\(,\)来作为普通的括号字符,但 是在Python中就不可以了,请问有什么方法能够区分,谢谢。
2006年09月14日 星期四 09:31
On 9/14/06, 邓作霖 <pse-dengzl在pegasus.tj.cn> wrote: > 大家好; > > 仍然有个问题是非常困惑的,在Python中如何区分作为Metacharactor的括 > 号和普通的括号呢?我在正则表达式工具中使用\(,\)来作为普通的括号字符,但 > 是在Python中就不可以了,请问有什么方法能够区分,谢谢。 和你的方法一样。 -- I like python! My Blog: http://www.donews.net/limodou UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad UliPad Maillist: http://groups.google.com/group/ulipad
2006年09月14日 星期四 09:39
但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? limodou wrote: > On 9/14/06, 邓作霖 <pse-dengzl at pegasus.tj.cn> wrote: > >> 大家好; >> >> 仍然有个问题是非常困惑的,在Python中如何区分作为Metacharactor的括 >> 号和普通的括号呢?我在正则表达式工具中使用\(,\)来作为普通的括号字符,但 >> 是在Python中就不可以了,请问有什么方法能够区分,谢谢。 >> > > 和你的方法一样。 > >
2006年09月14日 星期四 09:47
是否应该把'替换为'' ----- Original Message ----- From: "邓作霖" <pse-dengzl at pegasus.tj.cn> To: <python-chinese at lists.python.cn> Sent: Thursday, September 14, 2006 9:39 AM Subject: Re: [python-chinese] Python中的正则表达式如何区分metacharactor的括号和普通的括号 > 但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 > showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 > showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? > > > limodou wrote: >> On 9/14/06, 邓作霖 <pse-dengzl at pegasus.tj.cn> wrote: >> >>> 大家好; >>> >>> 仍然有个问题是非常困惑的,在Python中如何区分作为Metacharactor的括 >>> 号和普通的括号呢?我在正则表达式工具中使用\(,\)来作为普通的括号字符,但 >>> 是在Python中就不可以了,请问有什么方法能够区分,谢谢。 >>> >> >> 和你的方法一样。 >> >> > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2006年09月14日 星期四 09:53
On 9/14/06, 邓作霖 <pse-dengzl在pegasus.tj.cn> wrote: > 但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 > showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 > showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? > 没看懂,你是说上面是正则式,要匹配下面的东西吗?如果是这样,你的正则式不对怎么能匹配得上呢?,不知道你在RegexBuilder中是怎么试的? \D表示非数字的字符,这样一来,你的\D+与'TEST(F'匹配上了,括号已经没有了,你的正则式再有括号当然匹配不上。不知道你所说的RegexBuilder怎么就行,看来它有问题啊。再有,你只想要其中的东西,不用把没用的都写上,正则式如果这么用不是麻烦死了。 -- I like python! My Blog: http://www.donews.net/limodou UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad UliPad Maillist: http://groups.google.com/group/ulipad
2006年09月14日 星期四 10:05
POSIX关于regexp有两个标准,BRE(Basic Regular Expression) 和ERE (extended Regular Expression)。括号在BRE里面不属于meta character,在ERE里面则属于meta character。 Python实现的是Perl 5的regexp,是ERE的扩展。而RegexBuilder,我没用过,但估计应该是BRE的。说不定你可以修改设置,让它支持其他Regexp的方言,比如ERE或者Perl 5的。 此外,如果你要用Py的RE,最好用Py写的工具,比如kodos。 On 9/13/06, limodou <limodou在gmail.com> wrote: > On 9/14/06, 邓作霖 <pse-dengzl在pegasus.tj.cn> wrote: > > 但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 > > showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 > > showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? > > > 没看懂,你是说上面是正则式,要匹配下面的东西吗?如果是这样,你的正则式不对怎么能匹配得上呢?,不知道你在RegexBuilder中是怎么试的? > > \D表示非数字的字符,这样一来,你的\D+与'TEST(F'匹配上了,括号已经没有了,你的正则式再有括号当然匹配不上。不知道你所说的RegexBuilder怎么就行,看来它有问题啊。再有,你只想要其中的东西,不用把没用的都写上,正则式如果这么用不是麻烦死了。 > > -- > I like python! > My Blog: http://www.donews.net/limodou > UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad > UliPad Maillist: http://groups.google.com/group/ulipad > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2006年09月14日 星期四 10:12
用\D+不能仅仅匹配到(之前吗?因为我想要严格限定showHELP这个函数中那两个 bool类型参数为true所以才这样写的,我刚开始看正则表达式,本来想找个方便点 的工具能够简单验证我写的结果,现在这两个软件的差异确实是一件令人困惑的事 情,我再试试吧,非常感谢。 limodou wrote: > On 9/14/06, 邓作霖 <pse-dengzl at pegasus.tj.cn> wrote: > >> 但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 >> showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 >> showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? >> >> > 没看懂,你是说上面是正则式,要匹配下面的东西吗?如果是这样,你的正则式不对怎么能匹配得上呢?,不知道你在RegexBuilder中是怎么试的? > > \D表示非数字的字符,这样一来,你的\D+与'TEST(F'匹配上了,括号已经没有了,你的正则式再有括号当然匹配不上。不知道你所说的RegexBuilder怎么就行,看来它有问题啊。再有,你只想要其中的东西,不用把没用的都写上,正则式如果这么用不是麻烦死了。 > >
2006年09月14日 星期四 10:14
On 9/14/06, 邓作霖 <pse-dengzl在pegasus.tj.cn> wrote: > 用\D+不能仅仅匹配到(之前吗?因为我想要严格限定showHELP这个函数中那两个 > bool类型参数为true所以才这样写的,我刚开始看正则表达式,本来想找个方便点 > 的工具能够简单验证我写的结果,现在这两个软件的差异确实是一件令人困惑的事 > 情,我再试试吧,非常感谢。 > 想匹配到括号前可以 [^\(]+ -- I like python! My Blog: http://www.donews.net/limodou UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad UliPad Maillist: http://groups.google.com/group/ulipad
2006年09月14日 星期四 10:25
非常感谢,这个工具太好用了,我的问题解决了,不是正则表达式的问题,是我犯 了一个很弱智的错误。 :-[ shhgs wrote: > POSIX关于regexp有两个标准,BRE(Basic Regular Expression) 和ERE (extended > Regular Expression)。括号在BRE里面不属于meta character,在ERE里面则属于meta character。 > Python实现的是Perl 5的regexp,是ERE的扩展。而RegexBuilder,我没用过,但估计应该是BRE的。说不定你可以修改设置,让它支持其他Regexp的方言,比如ERE或者Perl > 5的。 > > 此外,如果你要用Py的RE,最好用Py写的工具,比如kodos。 > > On 9/13/06, limodou <limodou at gmail.com> wrote: > >> On 9/14/06, 邓作霖 <pse-dengzl at pegasus.tj.cn> wrote: >> >>> 但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 >>> showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 >>> showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? >>> >>> >> 没看懂,你是说上面是正则式,要匹配下面的东西吗?如果是这样,你的正则式不对怎么能匹配得上呢?,不知道你在RegexBuilder中是怎么试的? >> >> \D表示非数字的字符,这样一来,你的\D+与'TEST(F'匹配上了,括号已经没有了,你的正则式再有括号当然匹配不上。不知道你所说的RegexBuilder怎么就行,看来它有问题啊。再有,你只想要其中的东西,不用把没用的都写上,正则式如果这么用不是麻烦死了。 >> >> -- >> I like python! >> My Blog: http://www.donews.net/limodou >> UliPad Site: http://wiki.woodpecker.org.cn/moin/UliPad >> UliPad Maillist: http://groups.google.com/group/ulipad >> _______________________________________________ >> python-chinese >> Post: send python-chinese at lists.python.cn >> Subscribe: send subscribe to python-chinese-request at lists.python.cn >> Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn >> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2006年09月14日 星期四 10:28
我明白了,现在能匹配了,谢谢 :) limodou wrote: > On 9/14/06, 邓作霖 <pse-dengzl at pegasus.tj.cn> wrote: > >> 用\D+不能仅仅匹配到(之前吗?因为我想要严格限定showHELP这个函数中那两个 >> bool类型参数为true所以才这样写的,我刚开始看正则表达式,本来想找个方便点 >> 的工具能够简单验证我写的结果,现在这两个软件的差异确实是一件令人困惑的事 >> 情,我再试试吧,非常感谢。 >> >> > 想匹配到括号前可以 > [^\(]+ > >
2006年09月15日 星期五 13:50
import re p =re.compile("showHELP\('',true,'(\D+)\((.+)\)',true\)") s = "showHELP('',true,'TEST(F11709)',true)" r = p.match(s) print r.groups() 结果为 ('TEST', 'F11709'),也该是对的吧。不知道你的错误在哪里? 2006/9/14, 邓作霖 <pse-dengzl在pegasus.tj.cn>: > > 用\D+不能仅仅匹配到(之前吗?因为我想要严格限定showHELP这个函数中那两个 > bool类型参数为true所以才这样写的,我刚开始看正则表达式,本来想找个方便点 > 的工具能够简单验证我写的结果,现在这两个软件的差异确实是一件令人困惑的事 > 情,我再试试吧,非常感谢。 > > limodou wrote: > > On 9/14/06, 邓作霖 <pse-dengzl在pegasus.tj.cn> wrote: > > > >> 但是不行呢,同样的表达式,在RegexBuilder中可以在Python里就不行,比如这个 > >> showHELP\('',true,'(\D+)\((.+)\)',true\) , 来匹配 > >> showHELP('',true,'TEST(F11709)',true) ,我有什么地方写错了吗? > >> > >> > > 没看懂,你是说上面是正则式,要匹配下面的东西吗?如果是这样,你的正则式不对怎么能匹配得上呢?,不知道你在RegexBuilder中是怎么试的? > > > > > \D表示非数字的字符,这样一来,你的\D+与'TEST(F'匹配上了,括号已经没有了,你的正则式再有括号当然匹配不上。不知道你所说的RegexBuilder怎么就行,看来它有问题啊。再有,你只想要其中的东西,不用把没用的都写上,正则式如果这么用不是麻烦死了。 > > > > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- 茫茫人海,你是我的最爱 -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20060915/a4f41527/attachment.htm
Zeuux © 2025
京ICP备05028076号