Python论坛  - 讨论区

标题:[python-chinese] 正则表达式问题

2004年09月08日 星期三 23:14

March Liu March.Liu at gmail.com
Wed Sep 8 23:14:48 HKT 2004

      现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……

CN=Administrator,CN=Users,DC=gdtel,DC=com
CN=Guest,CN=Users,DC=gdtel,DC=com
CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
CN=krbtgt,CN=Users,DC=gdtel,DC=com
CN=广州管理员,OU=广州,DC=domain,DC=com
CN=深圳管理员,OU=深圳,DC=domain,DC=com
CN=珠海管理员,OU=珠海,DC=domain,DC=com
CN=汕头管理员,OU=汕头,DC=domain,DC=com
CN=韶关管理员,OU=韶关,DC=domain,DC=com
CN=……,OU=……,OU=……,DC=domain,DC=com
CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
CN=……,OU=……,DC=domain,DC=com
CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
……

这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?

谢谢大家
-- 
刘鑫
March.Liu

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月08日 星期三 23:57

limodou limodou at gmail.com
Wed Sep 8 23:57:44 HKT 2004

我看有OU的后面都是有DC段,那就把OU后面的,结果判断为DC不就行了。


On Wed, 8 Sep 2004 23:14:48 +0800, March Liu <march.liu at gmail.com> wrote:
>      现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……
> 
> CN=Administrator,CN=Users,DC=gdtel,DC=com
> CN=Guest,CN=Users,DC=gdtel,DC=com
> CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
> CN=krbtgt,CN=Users,DC=gdtel,DC=com
> CN=广州管理员,OU=广州,DC=domain,DC=com
> CN=深圳管理员,OU=深圳,DC=domain,DC=com
> CN=珠海管理员,OU=珠海,DC=domain,DC=com
> CN=汕头管理员,OU=汕头,DC=domain,DC=com
> CN=韶关管理员,OU=韶关,DC=domain,DC=com
> CN=……,OU=……,OU=……,DC=domain,DC=com
> CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
> CN=……,OU=……,DC=domain,DC=com
> CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
> ……
> 
> 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
> theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
> 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
> 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?
> 
> 谢谢大家
> --
> 刘鑫
> March.Liu
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 



-- 
I like python!


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 07:37

tocer tootoo at yeah.net
Thu Sep 9 07:37:41 HKT 2004

这样可以么?没试过:
theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
                                                     ^^^^^^^^^^

----- Original Message ----- 
From: "March Liu" <March.Liu at gmail.com>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, September 08, 2004 11:14 PM
Subject: [python-chinese] 正则表达式问题


>       现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……
> 
> CN=Administrator,CN=Users,DC=gdtel,DC=com
> CN=Guest,CN=Users,DC=gdtel,DC=com
> CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
> CN=krbtgt,CN=Users,DC=gdtel,DC=com
> CN=广州管理员,OU=广州,DC=domain,DC=com
> CN=深圳管理员,OU=深圳,DC=domain,DC=com
> CN=珠海管理员,OU=珠海,DC=domain,DC=com
> CN=汕头管理员,OU=汕头,DC=domain,DC=com
> CN=韶关管理员,OU=韶关,DC=domain,DC=com
> CN=……,OU=……,OU=……,DC=domain,DC=com
> CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
> CN=……,OU=……,DC=domain,DC=com
> CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
> ……
> 
> 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
> theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
> 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
> 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?
> 
> 谢谢大家
> -- 
> 刘鑫
> March.Liu
> 


--------------------------------------------------------------------------------


> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 08:36

hoxide hoxide_dirac at yahoo.com.cn
Thu Sep 9 08:36:48 HKT 2004

在IDLE中:
>>> aa.sort(lambda x,y: x[1]-y[1])
>>> a={'a':2, 'b':5, 'c':1}
>>> b=a.items()
>>> b.sort(lambda x,y: x[1]-y[1])
>>> b
[('c', 1), ('a', 2), ('b', 5)]

python对列表提供了sort函数,并且是个范函,所以好好利用python内在的能力吧。

具体参见Python Library Reference 2.3.6.4 Mutable Sequence Types 注释8:

8) 
The sort() method takes an optional argument specifying a comparison function of two arguments (list items) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument. Note that this slows the sorting process down considerably; for example to sort a list in reverse order it is much faster to call sort() followed by reverse() than to use sort() with a comparison function that reverses the ordering of the elements. Passing None as the comparison function is semantically equivalent to calling sort() with no comparison function. Changed in version 2.3: Support for None as an equivalent to omitting cmpfunc was added. 
As an example of using the cmpfunc argument to the sort() method, consider sorting a list of sequences by the second element of that list: 


def mycmp(a, b):
    return cmp(a[1], b[1])

mylist.sort(mycmp)

A more time-efficient approach for reasonably-sized data structures can often be used: 


tmplist = [(x[1], x) for x in mylist]
tmplist.sort()
mylist = [x for (key, x) in tmplist]




======= 2004-09-08 05:24:32 您在来信中写道:=======

>要求上光写原始状态是个字典,最后要按正确的顺序输出,没规定必须还是个字典,所以我觉得转移到list里问题不大,所以用list实现了排序。
>
>谢谢大家的帮忙。
>
>
>----- Original Message ----- 
>From: "GreyRoar" <GreyRoar at tom.com>
>To: <python-chinese at lists.python.cn>
>Sent: Tuesday, September 07, 2004 2:00 AM
>Subject: Re: Re:[python-chinese]另外的字典排序问题
>
>
>Wang Chao,您好!
>
>先明确一下你的题目上要求最后结果是存在一个字典吗?还是只说明源是一个字典,结果怎么存随便?如果是后者,那用list只是个过渡。如果是前者,我个人觉得你存结果的字典就得用有序数字做key了,而源字典中key:value则作为目标字典value保存。这样虽然字典本身还是无序的,但表面上你字典的key至少是有序的。
>
>
>======= 2004-09-07 01:03:00 您在来信中写道:=======
>
>>那个题目上写明了是要用字典,比较郁闷。能不能把keys和value都弄到list里面,然后按原先的顺序对应好,对这个list排序?
>>
>>----- Original Message ----- 
>>From: "GreyRoar" <GreyRoar at tom.com>
>>To: <python-chinese at lists.python.cn>
>>Sent: Tuesday, September 07, 2004 12:38 AM
>>Subject: Re: [python-chinese]另外的字典排序问题
>>
>>
>>Wang Chao,您好!
>>
>>个人觉得你这样的情况用字典不是特别好,要是用list里面嵌list的办法倒是可以用list.sort(func)的办法按一定条件排序。
>>
>>======= 2004-09-06 23:56:00 您在来信中写道:=======
>>
>>>现在已经有一个字典,Keys是英文单词,Values是这个单词在文件中出现的次数。
>>>想要给这个字典重新排序,让出现次数最多的单词排第一位,出现次数最少的排最后。
>>>
>>>我尝试把字典里的values放入一个list里,在对list排序,但是好像排完也没有什么意义。很多单词的values值一样,就是排完也没有办法把把排序结果应用回原来的字典里。
>>>
>>>我能想当的另一个方案是,每个单词和后面的所有词比较,当遇到values比他大的,就改为values更大的单词开始比较,如果到最后都没有比他大的,就把这个词写入新字典里,同时在旧字典里删除自己,但是好像太弱智了点。
>>>
>>>
>>>不知道还有什么其他更好地解决方案。
>>>
>>>谢谢~~~
>>>
>>>基础太差,时间又太紧,我问题好多,学得好辛苦 。 :(
>>>
>>>
>>>_______________________________________________
>>>python-chinese list
>>>python-chinese at lists.python.cn
>>>http://python.cn/mailman/listinfo/python-chinese
>>
>>= = = = = = = = = = = = = = = = = = = =
>>
>>
>>        致
>>礼!
>> 
>>
>>        GreyRoar
>>        GreyRoar at tom.com
>>          2004-09-07
>>
>>
>>
>>
>>_______________________________________________
>>python-chinese list
>>python-chinese at lists.python.cn
>>http://python.cn/mailman/listinfo/python-chinese
>>
>>_______________________________________________
>>python-chinese list
>>python-chinese at lists.python.cn
>>http://python.cn/mailman/listinfo/python-chinese
>
>= = = = = = = = = = = = = = = = = = = =
>
>
>        致
>礼!
> 
>
>        GreyRoar
>        GreyRoar at tom.com
>          2004-09-07
>
>
>
>
>_______________________________________________
>python-chinese list
>python-chinese at lists.python.cn
>http://python.cn/mailman/listinfo/python-chinese
>
>_______________________________________________
>python-chinese list
>python-chinese at lists.python.cn
>http://python.cn/mailman/listinfo/python-chinese
>

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        hoxide
        hoxide_dirac at yahoo.com.cn
          2004-09-08


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 08:47

Zoom.Quiet zoomq at infopro.cn
Thu Sep 9 08:47:31 HKT 2004

Hollo March:

   theRegular = re.compile(r"CN=.*?,OU=.*DC=gdtel,DC=com")
就好?!
你原来使用是非贪婪匹配,现在进行最大匹配就好哪!??!



/******** [2004-09-09]08:45:27 ; March wrote:

March Liu>      
March Liu> 现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……

March Liu> CN=Administrator,CN=Users,DC=gdtel,DC=com
March Liu> CN=Guest,CN=Users,DC=gdtel,DC=com
March Liu> CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
March Liu> CN=krbtgt,CN=Users,DC=gdtel,DC=com
March Liu> CN=广州管理员,OU=广州,DC=domain,DC=com
March Liu> CN=深圳管理员,OU=深圳,DC=domain,DC=com
March Liu> CN=珠海管理员,OU=珠海,DC=domain,DC=com
March Liu> CN=汕头管理员,OU=汕头,DC=domain,DC=com
March Liu> CN=韶关管理员,OU=韶关,DC=domain,DC=com
March Liu> CN=……,OU=……,OU=……,DC=domain,DC=com
March Liu> CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
March Liu> CN=……,OU=……,DC=domain,DC=com
March Liu> CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
March Liu> ……

March Liu> 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
March Liu> theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
March Liu> 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
March Liu> 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?

March Liu> 谢谢大家


********************************************/

-- 
Free as in Freedom

 Zoom.Quiet                           

#=========================================#
]Time is unimportant, only life important![
#=========================================#

sender is the Bat!2.12.00



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:00

tocer tootoo at yeah.net
Thu Sep 9 11:00:08 HKT 2004

不太懂。举个例子给我,好吧。

另:你写的安装vim for python的教程我拜读了,很好.
----- Original Message ----- 
From: "March Liu" <March.Liu at gmail.com>
To: "tocer" <tootoo at yeah.net>
Sent: Thursday, September 09, 2004 10:11 AM
Subject: Re: [python-chinese] 正则表达式问题


我打印了一下匹配出来的结果,
mr = re.match(theRegular, line)
if mr != None:
print mr.groups()
print line
,结果发现存在多个OU的时候,每次只匹配出了最后一个,有没有什么办法可以得到所有的OU呢?

On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> 这样可以么?没试过:
> theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
>                                                     ^^^^^^^^^^
> 
> 
> 
> ----- Original Message -----
> From: "March Liu" <March.Liu at gmail.com>
> To: <python-chinese at lists.python.cn>
> Sent: Wednesday, September 08, 2004 11:14 PM
> Subject: [python-chinese] 正则表达式问题
> 
> >       现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……
> >
> > CN=Administrator,CN=Users,DC=gdtel,DC=com
> > CN=Guest,CN=Users,DC=gdtel,DC=com
> > CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
> > CN=krbtgt,CN=Users,DC=gdtel,DC=com
> > CN=广州管理员,OU=广州,DC=domain,DC=com
> > CN=深圳管理员,OU=深圳,DC=domain,DC=com
> > CN=珠海管理员,OU=珠海,DC=domain,DC=com
> > CN=汕头管理员,OU=汕头,DC=domain,DC=com
> > CN=韶关管理员,OU=韶关,DC=domain,DC=com
> > CN=……,OU=……,OU=……,DC=domain,DC=com
> > CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
> > CN=……,OU=……,DC=domain,DC=com
> > CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
> > ……
> >
> > 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
> > theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
> > 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
> > 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?
> >
> > 谢谢大家
> > --
> > 刘鑫
> > March.Liu
> >
> 
> 
> --------------------------------------------------------------------------------
> 
> 
> 
> 
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> > 



-- 
刘鑫
March.Liu

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:18

March Liu March.Liu at gmail.com
Thu Sep 9 11:18:02 HKT 2004

On Thu, 9 Sep 2004 11:00:08 +0800, tocer <tootoo at yeah.net> wrote:
> 不太懂。举个例子给我,好吧。

比如CN=维护,OU=计算机中心,OU=珠海,DC=gdtel,DC=com
,我希望把OU=计算机中心,OU=珠海,全选出来,每一项一个独立的字符串。

> 
> 另:你写的安装vim for python的教程我拜读了,很好.
那真的是集体的力量,没有大家的指导,我也学不会用VIM:D,也祝Emacs的高手们可以早日把Emacs部分补充完整。
最近我在用Limodou的NewEdit,
> 
> 
> ----- Original Message -----
> From: "March Liu" <March.Liu at gmail.com>
> To: "tocer" <tootoo at yeah.net>
> Sent: Thursday, September 09, 2004 10:11 AM
> Subject: Re: [python-chinese] 正则表达式问题
> 
> 我打印了一下匹配出来的结果,
> mr = re.match(theRegular, line)
> if mr != None:
> print mr.groups()
> print line
> ,结果发现存在多个OU的时候,每次只匹配出了最后一个,有没有什么办法可以得到所有的OU呢?
> 
> On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> > 这样可以么?没试过:
> > theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
> >                                                     ^^^^^^^^^^
> >
> >
> >
> > ----- Original Message -----
> > From: "March Liu" <March.Liu at gmail.com>
> > To: <python-chinese at lists.python.cn>
> > Sent: Wednesday, September 08, 2004 11:14 PM
> > Subject: [python-chinese] 正则表达式问题
> >
> > >       现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……
> > >
> > > CN=Administrator,CN=Users,DC=gdtel,DC=com
> > > CN=Guest,CN=Users,DC=gdtel,DC=com
> > > CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
> > > CN=krbtgt,CN=Users,DC=gdtel,DC=com
> > > CN=广州管理员,OU=广州,DC=domain,DC=com
> > > CN=深圳管理员,OU=深圳,DC=domain,DC=com
> > > CN=珠海管理员,OU=珠海,DC=domain,DC=com
> > > CN=汕头管理员,OU=汕头,DC=domain,DC=com
> > > CN=韶关管理员,OU=韶关,DC=domain,DC=com
> > > CN=……,OU=……,OU=……,DC=domain,DC=com
> > > CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
> > > CN=……,OU=……,DC=domain,DC=com
> > > CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
> > > ……
> > >
> > > 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
> > > theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
> > > 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
> > > 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?
> > >
> > > 谢谢大家
> > > --
> > > 刘鑫
> > > March.Liu
> > >
> >
> >
> > --------------------------------------------------------------------------------
> >
> >
> >
> >
> > > _______________________________________________
> > > python-chinese list
> > > python-chinese at lists.python.cn
> > > http://python.cn/mailman/listinfo/python-chinese
> > >
> 
> --
> 刘鑫
> March.Liu
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 



-- 
刘鑫
March.Liu


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:18

Xie Yanbo idkey at 163.com
Thu Sep 9 11:18:31 HKT 2004

On 2004-09-09 11:00:1094698808 +0800, tocer wrote:
> 不太懂。举个例子给我,好吧。
> 
> 另:你写的安装vim for python的教程我拜读了,很好.
> ----- Original Message ----- 
> From: "March Liu" <March.Liu at gmail.com>
> To: "tocer" <tootoo at yeah.net>
> Sent: Thursday, September 09, 2004 10:11 AM
> Subject: Re: [python-chinese] 正则表达式问题
> 
> 
> 我打印了一下匹配出来的结果,
> mr = re.match(theRegular, line)
> if mr != None:
> print mr.groups()
> print line
> ,结果发现存在多个OU的时候,每次只匹配出了最后一个,有没有什么办法可以得到所有的OU呢?
> 
> On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> > 这样可以么?没试过:
> > theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")

改一下表达式,在外面再套一层就可以了:

  r"CN=.*?,((OU=.*?,)+)DC=gdtel,DC=com"

mathobj.groups()[1] 就是你想要的。



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:24

tocer tootoo at yeah.net
Thu Sep 9 11:24:45 HKT 2004

我觉得Xie Yanbo的方法可以,你再试试

Xie Yanbo:
>  改一下表达式,在外面再套一层就可以了:
> r"CN=.*?,((OU=.*?,)+)DC=gdtel,DC=com"
> mathobj.groups()[1] 就是你想要的。


----- Original Message ----- 
From: "March Liu" <March.Liu at gmail.com>
To: "tocer" <python-chinese at lists.python.cn>
Sent: Thursday, September 09, 2004 11:18 AM
Subject: Re: [python-chinese] 正则表达式问题


On Thu, 9 Sep 2004 11:00:08 +0800, tocer <tootoo at yeah.net> wrote:
> 不太懂。举个例子给我,好吧。

比如CN=维护,OU=计算机中心,OU=珠海,DC=gdtel,DC=com
,我希望把OU=计算机中心,OU=珠海,全选出来,每一项一个独立的字符串。

> 
> 另:你写的安装vim for python的教程我拜读了,很好.
那真的是集体的力量,没有大家的指导,我也学不会用VIM:D,也祝Emacs的高手们可以早日把Emacs部分补充完整。
最近我在用Limodou的NewEdit,
> 
> 
> ----- Original Message -----
> From: "March Liu" <March.Liu at gmail.com>
> To: "tocer" <tootoo at yeah.net>
> Sent: Thursday, September 09, 2004 10:11 AM
> Subject: Re: [python-chinese] 正则表达式问题
> 
> 我打印了一下匹配出来的结果,
> mr = re.match(theRegular, line)
> if mr != None:
> print mr.groups()
> print line
> ,结果发现存在多个OU的时候,每次只匹配出了最后一个,有没有什么办法可以得到所有的OU呢?
> 
> On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> > 这样可以么?没试过:
> > theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
> >                                                     ^^^^^^^^^^
> >
> >
> >
> > ----- Original Message -----
> > From: "March Liu" <March.Liu at gmail.com>
> > To: <python-chinese at lists.python.cn>
> > Sent: Wednesday, September 08, 2004 11:14 PM
> > Subject: [python-chinese] 正则表达式问题
> >
> > >       现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……
> > >
> > > CN=Administrator,CN=Users,DC=gdtel,DC=com
> > > CN=Guest,CN=Users,DC=gdtel,DC=com
> > > CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
> > > CN=krbtgt,CN=Users,DC=gdtel,DC=com
> > > CN=广州管理员,OU=广州,DC=domain,DC=com
> > > CN=深圳管理员,OU=深圳,DC=domain,DC=com
> > > CN=珠海管理员,OU=珠海,DC=domain,DC=com
> > > CN=汕头管理员,OU=汕头,DC=domain,DC=com
> > > CN=韶关管理员,OU=韶关,DC=domain,DC=com
> > > CN=……,OU=……,OU=……,DC=domain,DC=com
> > > CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
> > > CN=……,OU=……,DC=domain,DC=com
> > > CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
> > > ……
> > >
> > > 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
> > > theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
> > > 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
> > > 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?
> > >
> > > 谢谢大家
> > > --
> > > 刘鑫
> > > March.Liu
> > >
> >
> >
> > --------------------------------------------------------------------------------
> >
> >
> >
> >
> > > _______________________________________________
> > > python-chinese list
> > > python-chinese at lists.python.cn
> > > http://python.cn/mailman/listinfo/python-chinese
> > >
> 
> --
> 刘鑫
> March.Liu
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 



-- 
刘鑫
March.Liu
_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:33

March Liu March.Liu at gmail.com
Thu Sep 9 11:33:20 HKT 2004

试验了一下,确实好用,非常感谢!这样我就可以把这个字符串分割一下用了。贪心一点……如果可以将每一个OU项单独匹配出来就更完美了!^_^


On Thu, 9 Sep 2004 11:18:31 +0800, Xie Yanbo <idkey at 163.com> wrote:
> On 2004-09-09 11:00:1094698808 +0800, tocer wrote:
> > ²»Ì«¶®¡£¾Ù¸öÀý×Ó¸øÎÒ£¬ºÃ°É¡£
> >
> > Áí£ºÄãдµÄ°²×°vim for pythonµÄ½Ì³ÌÎҰݶÁÁË,ºÜºÃ.
> > ----- Original Message -----
> > From: "March Liu" <March.Liu at gmail.com>
> > To: "tocer" <tootoo at yeah.net>
> > Sent: Thursday, September 09, 2004 10:11 AM
> > Subject: Re: [python-chinese] ÕýÔò±í´ïʽÎÊÌâ
> >
> >
> > ÎÒ´òÓ¡ÁËÒ»ÏÂÆ¥Åä³öÀ´µÄ½á¹û£¬
> > mr = re.match(theRegular, line)
> > if mr != None:
> > print mr.groups()
> > print line
> > £¬½á¹û·¢ÏÖ´æÔÚ¶à¸öOUµÄʱºò£¬Ã¿´ÎֻƥÅä³öÁË×îºóÒ»¸ö£¬ÓÐûÓÐʲô°ì·¨¿ÉÒԵõ½ËùÓеÄOUÄØ£¿
> >
> > On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> > > ÕâÑù¿ÉÒÔô£¿Ã»ÊÔ¹ý£º
> > > theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
> 
> ¸Äһϱí´ïʽ£¬ÔÚÍâÃæÔÙÌ×Ò»²ã¾Í¿ÉÒÔÁË£º
> 
>  r"CN=.*?,((OU=.*?,)+)DC=gdtel,DC=com"
> 
> mathobj.groups()[1] ¾ÍÊÇÄãÏëÒªµÄ¡£
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 



-- 
刘鑫
March.Liu


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:38

tocer tootoo at yeah.net
Thu Sep 9 11:38:18 HKT 2004

可以应用 s.split(',') ,把他转成列表,每个OU是列表中的一个元素,就能够如你所愿了
----- Original Message ----- 
From: "March Liu" <March.Liu at gmail.com>
To: <python-chinese at lists.python.cn>
Sent: Thursday, September 09, 2004 11:33 AM
Subject: Re: [python-chinese] ʽ 


试验了一下,确实好用,非常感谢!这样我就可以把这个字符串分割一下用了。贪心一点……如果可以将每一个OU项单独匹配出来就更完美了!^_^


On Thu, 9 Sep 2004 11:18:31 +0800, Xie Yanbo <idkey at 163.com> wrote:
> On 2004-09-09 11:00:1094698808 +0800, tocer wrote:
> > ²»Ì«¶®¡£¾Ù¸öÀý×Ó¸øÎÒ£¬ºÃ°É¡£
> >
> > Áí£ºÄãдµÄ°²×°vim for pythonµÄ½Ì³ÌÎҰݶÁÁË,ºÜºÃ.
> > ----- Original Message -----
> > From: "March Liu" <March.Liu at gmail.com>
> > To: "tocer" <tootoo at yeah.net>
> > Sent: Thursday, September 09, 2004 10:11 AM
> > Subject: Re: [python-chinese] ÕýÔò±í´ïʽÎÊÌâ
> >
> >
> > ÎÒ´òÓ¡ÁËÒ»ÏÂÆ¥Åä³öÀ´µÄ½á¹û£¬
> > mr = re.match(theRegular, line)
> > if mr != None:
> > print mr.groups()
> > print line
> > £¬½á¹û·¢ÏÖ´æÔÚ¶à¸öOUµÄʱºò£¬Ã¿´ÎֻƥÅä³öÁË×îºóÒ»¸ö£¬ÓÐûÓÐʲô°ì·¨¿ÉÒԵõ½ËùÓеÄOUÄØ£¿
> >
> > On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> > > ÕâÑù¿ÉÒÔô£¿Ã»ÊÔ¹ý£º
> > > theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
> 
> ¸Äһϱí´ïʽ£¬ÔÚÍâÃæÔÙÌ×Ò»²ã¾Í¿ÉÒÔÁË£º
> 
>  r"CN=.*?,((OU=.*?,)+)DC=gdtel,DC=com"
> 
> mathobj.groups()[1] ¾ÍÊÇÄãÏëÒªµÄ¡£
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 



-- 
刘鑫
March.Liu
_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:48

March Liu March.Liu at gmail.com
Thu Sep 9 11:48:43 HKT 2004

呵呵,现在正准备这么干呢,谢谢你啊。
其实说老实话,完全不用正则表达式的笨办法不是没有,逐个按逗号拆开,再按等号分隔,一个一个查也行,就是不甘心这么写,总想找个美观的办法:P。

On Thu, 9 Sep 2004 11:38:18 +0800, tocer <tootoo at yeah.net> wrote:
> 可以应用 s.split(',') ,把他转成列表,每个OU是列表中的一个元素,就能够如你所愿了

-- 
刘鑫
March.Liu

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年09月09日 星期四 11:51

limodou limodou at gmail.com
Thu Sep 9 11:51:53 HKT 2004

既然在用,给点意见啊!


On Thu, 9 Sep 2004 11:18:02 +0800, March Liu <march.liu at gmail.com> wrote:
> On Thu, 9 Sep 2004 11:00:08 +0800, tocer <tootoo at yeah.net> wrote:
> > 不太懂。举个例子给我,好吧。
> 
> 比如CN=维护,OU=计算机中心,OU=珠海,DC=gdtel,DC=com
> ,我希望把OU=计算机中心,OU=珠海,全选出来,每一项一个独立的字符串。
> 
> >
> > 另:你写的安装vim for python的教程我拜读了,很好.
> 那真的是集体的力量,没有大家的指导,我也学不会用VIM:D,也祝Emacs的高手们可以早日把Emacs部分补充完整。
> 最近我在用Limodou的NewEdit,
> 
> 
> >
> >
> > ----- Original Message -----
> > From: "March Liu" <March.Liu at gmail.com>
> > To: "tocer" <tootoo at yeah.net>
> > Sent: Thursday, September 09, 2004 10:11 AM
> > Subject: Re: [python-chinese] 正则表达式问题
> >
> > 我打印了一下匹配出来的结果,
> > mr = re.match(theRegular, line)
> > if mr != None:
> > print mr.groups()
> > print line
> > ,结果发现存在多个OU的时候,每次只匹配出了最后一个,有没有什么办法可以得到所有的OU呢?
> >
> > On Thu, 9 Sep 2004 07:37:41 +0800, tocer <tootoo at yeah.net> wrote:
> > > 这样可以么?没试过:
> > > theRegular = re.compile(r"CN=.*?,(OU=.*?,)+DC=gdtel,DC=com")
> > >                                                     ^^^^^^^^^^
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: "March Liu" <March.Liu at gmail.com>
> > > To: <python-chinese at lists.python.cn>
> > > Sent: Wednesday, September 08, 2004 11:14 PM
> > > Subject: [python-chinese] 正则表达式问题
> > >
> > > >       现在有这样一组文本,都是从某域控制器倒出的用户AD信息。因为都是真实数据,不好全拿出来。大概是这样子……
> > > >
> > > > CN=Administrator,CN=Users,DC=gdtel,DC=com
> > > > CN=Guest,CN=Users,DC=gdtel,DC=com
> > > > CN=TsInternetUser,CN=Users,DC=gdtel,DC=com
> > > > CN=krbtgt,CN=Users,DC=gdtel,DC=com
> > > > CN=广州管理员,OU=广州,DC=domain,DC=com
> > > > CN=深圳管理员,OU=深圳,DC=domain,DC=com
> > > > CN=珠海管理员,OU=珠海,DC=domain,DC=com
> > > > CN=汕头管理员,OU=汕头,DC=domain,DC=com
> > > > CN=韶关管理员,OU=韶关,DC=domain,DC=com
> > > > CN=……,OU=……,OU=……,DC=domain,DC=com
> > > > CN=……,OU=……,OU=……,OU=……,DC=domain,DC=com
> > > > CN=……,OU=……,DC=domain,DC=com
> > > > CN=SQLAgentCmdExec,CN=Users,DC=gdtel,DC=com
> > > > ……
> > > >
> > > > 这里面有一些系统内置的用户,也有一些自定义用户,我现在想要把自定义用户过滤出来,他们的特征是有若干个OU字段。现在我用这种正则表达式可以匹配出来:
> > > > theRegular = re.compile(r"CN=.*?,OU=.*?,DC=gdtel,DC=com")
> > > > 不过我希望这个正则表达式更严格一些。现在的匹配条件的核心是"OU=.*?,",即以"OU="字符串后带有若干字符并以","结尾。
> > > > 现在,我希望这一部分表达式匹配一到若干个"OU=.*?,",应该怎么写?
> > > >
> > > > 谢谢大家
> > > > --
> > > > 刘鑫
> > > > March.Liu
> > > >
> > >
> > >
> > > --------------------------------------------------------------------------------
> > >
> > >
> > >
> > >
> > > > _______________________________________________
> > > > python-chinese list
> > > > python-chinese at lists.python.cn
> > > > http://python.cn/mailman/listinfo/python-chinese
> > > >
> >
> > --
> > 刘鑫
> > March.Liu
> >
> >
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> 
> --
> 刘鑫
> March.Liu
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 



-- 
I like python!


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号