如何在dir(re)中显示regex groups()函数?

时间:2019-01-15 09:13:59

标签: python

我对这一切仍然是陌生的,在我学习的过程中,我倾向于在终端使用dir()花费很多时间。但是,我尝试了100倍的方法来使其显示groups()函数或正则表达式的任何类似内容。

关于匹配对象的方法和属性的完整列表,我不知道如何在屏幕上打印这些方法和属性的目录。

我正在学习一门课程,您基本上是作为新手学习编程的。我喜欢按照教程和程序进行操作,然后尝试从内存中再次对其进行编程,然后使用dir()和help()激发我的内存并使我前进。但是我对对象以及如何显示可用于对象的一般方法了解不多。

感谢您的帮助,我应该在几个小时前问这个问题,而不是反复遍历dir()的兔子洞并尝试找出inspect()。如果我能将自己的方法追溯到方法列表,特别是groups(),我会很高兴的。

这就是给我显示的一切。

+ (void)establishConnectionForExtension:(BOOL)extension {
    [Parse initializeWithConfiguration:[ParseClientConfiguration configurationWithBlock:^(id<ParseMutableClientConfiguration>  _Nonnull configuration) {
        configuration.applicationGroupIdentifier = @"group.de.company.app";
        configuration.applicationId = PARSE_ID;
        configuration.clientKey = PARSE_KEY;
        configuration.localDatastoreEnabled = YES;
        configuration.server = @"https://";
        if (extension) configuration.containingApplicationBundleIdentifier = @"de.company.app";
    }]];
}

2 个答案:

答案 0 :(得分:0)

在Python 3.7中,匹配对象是re.Match的实例,您可以使用dir来检查其属性和方法:

>>> import re
>>> dir(re.Match)
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__', 
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 
'__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', 
'__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 
'end', 'endpos', 'expand', 'group', 'groupdict', 'groups', 'lastgroup', 
'lastindex', 'pos', 're', 'regs', 'span', 'start', 'string']

然后获取更多信息:

>>> help(re.Match.group)
group(...)
    group([group1, ...]) -> str or tuple.
    Return subgroup(s) of the match by indices or names.
    For 0 returns the entire match.

Match定义已在3.7版中添加到re中。参见bpo30397

您可以创建实际的匹配对象并在其上使用re.Match,而不是使用dir

>>> import re
>>> m = re.match('x', 'x')
>>> dir(m)
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 
'__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', 
'__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 
'end', 'endpos', 'expand', 'group', 'groupdict', 'groups', 'lastgroup', 
'lastindex', 'pos', 're', 'regs', 'span', 'start', 'string']
>>> help(m.group)
... etc.

您可以看到列表中都包含groupgroups

答案 1 :(得分:-1)

>>> import re
>>> match = re.search('l', 'Hello world')
>>> match
<re.Match object; span=(2, 3), match='l'>
>>> dir(match)
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__',
 '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 
 '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', 
 '__le__', '__lt__', '__ne__', '__new__', '__reduce__',
 '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', 
 '__subclasshook__', 'end', 'endpos', 'expand', 'group', 'groupdict', 
 'groups', 'lastgroup', 'lastindex', 'pos', 're', 'regs', 'span', 
 'start', 'string']
>>> match.groups()
()
>>> match = re.search('(l)', 'Hello world')
>>> match.groups()
('l',)