本文整理汇总了Python中pyparsing.MatchFirst方法的典型用法代码示例。如果您正苦于以下问题:Python pyparsing.MatchFirst方法的具体用法?Python pyparsing.MatchFirst怎么用?Python pyparsing.MatchFirst使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyparsing
的用法示例。
在下文中一共展示了pyparsing.MatchFirst方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _globalParse___username_attributes
# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import MatchFirst [as 别名]
def _globalParse___username_attributes(line):
username_dict = {}
username = (Word(printables)) ('user')
privilege = (Suppress('privilege') + Word(nums)) ('priv_num')
password_type = (Suppress(MatchFirst(['secret', 'password'])) + Word(nums))('pass_type')
parse_username = username + Optional(privilege) + password_type + Suppress(restOfLine)
result = parse_username.parseString(line)
username_dict[result.user] = {}
username_dict[result.user]['password_type'] = result.pass_type.asList()[0]
try:
username_dict[result.user]['privilege'] = result.priv_num.asList()[0]
except AttributeError:
pass
return username_dict
示例2: get_protein_modification_language
# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import MatchFirst [as 别名]
def get_protein_modification_language(concept_qualified: ParserElement) -> ParserElement:
"""Build a protein modification parser."""
pmod_concept = MatchFirst([
concept_qualified,
pmod_default_ns,
pmod_legacy_ns,
])
return pmod_tag + nest(
Group(pmod_concept)(CONCEPT)
+ Optional(
WCW
+ amino_acid(PMOD_CODE)
+ Optional(WCW + ppc.integer(PMOD_POSITION)),
),
)
示例3: _globalParse___aaa_attributes
# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import MatchFirst [as 别名]
def _globalParse___aaa_attributes(line, type, count_aaa):
aaa_dict = {}
authentication_list = (Suppress('login') + Word(printables)) ('authent_list')
authentication_groups = (OneOrMore(Optional(Suppress('group')) + Word(printables))) ('authent_methods')
parse_authentication = authentication_list + authentication_groups
# parse_authorization_options = MatchFirst(['exec', 'login']) + Word(printables) + OneOrMore(Optional(Suppress('group')) + Word(printables))
accounting_login = (MatchFirst(['exec', 'network', 'connection', 'commands'])) ('acc_login')
accounting_list = (Optional(Word(nums)) + Word(printables)) ('acc_list')
accounting_record = (MatchFirst(['start-stop', 'stop-only', 'stop'])) ('acc_record')
accounting_methods = (OneOrMore(Optional(Suppress('group')) + Word(printables))) ('acc_methods')
parse_accounting = accounting_login + accounting_list + accounting_record + accounting_methods
if type == 'authentication':
result = parse_authentication.parseString(line)
aaa_dict.update({'login' + str(count_aaa): {}})
aaa_dict['login' + str(count_aaa)]['list'] = result.authent_list[0]
aaa_dict['login' + str(count_aaa)]['methods'] = result.authent_methods.asList()
# elif type == 'authorization':
# result = parse_authorization_options.parseString(line)
# aaa_dict.update({'login' + str(count_aaa): {}})
# aaa_dict['login' + str(count_aaa)]['login'] = result.pop(0)
# aaa_dict['login' + str(count_aaa)]['list'] = result.pop(0)
# aaa_dict['login' + str(count_aaa)]['methods'] = result.asList()
elif type == 'accounting':
result = parse_accounting.parseString(line)
aaa_dict.update({'login' + str(count_aaa): {}})
aaa_dict['login' + str(count_aaa)]['login'] = result.acc_login
aaa_dict['login' + str(count_aaa)]['list'] = result.acc_list.asList()
aaa_dict['login' + str(count_aaa)]['record'] = result.acc_record
aaa_dict['login' + str(count_aaa)]['methods'] = result.acc_methods.asList()
return aaa_dict
示例4: get_gene_modification_language
# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import MatchFirst [as 别名]
def get_gene_modification_language(concept_qualified: ParserElement) -> ParserElement:
"""Build a gene modification parser."""
concept = MatchFirst([
concept_qualified,
gmod_default_ns,
])
return gmod_tag + nest(Group(concept)(CONCEPT))
示例5: flatten_pyparsing_exprs
# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import MatchFirst [as 别名]
def flatten_pyparsing_exprs(expr):
exprs = set()
for child in expr.exprs:
if isinstance(child, (Literal, six.string_types)):
exprs.add(str(child).strip('"'))
elif isinstance(child, (MatchFirst, ParseExpression, ParserElement)):
exprs.update(flatten_pyparsing_exprs(child))
return exprs
示例6: _process_rules_group
# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import MatchFirst [as 别名]
def _process_rules_group(self, rules):
group = None
group_type = rules.list_type
data = rules.rules
if group_type == 'sequence':
group = self._process_rules(data, pp.And)
elif group_type == 'option':
group = self._process_rules(data, pp.MatchFirst)
elif group_type == 'optional':
group = pp.Optional(self._process_rules(data, pp.And))
return group