如果在钥匙中强调,则用键值对安装一个字符串 我有一个字符串,其键值对与_作为定界符。问题是,密钥内也可能有强调。 我可以用什么正则将它们分成钥匙值对? 插图: C_OPS_C ...

问题描述 投票:0回答:2

函数:

C_OPS_CITY=SFO_C_OPS_SITE_INDICATOR=Office_IDENTITYCATEGORY=Employee_C_OPS_COMPANY=My Company_

指望输出:

C_OPS_CITY=SFO

C_OPS_SITE_INDICATOR=Office

    IdentityCategory=员工
  • C_OPS_COMPANY=我的公司
  • 如果不是正则,我还可以使用什么其他逻辑将此字符串拆分为数组?
值只有在不包含下划线的情况下才能明确识别这些值。如果确实如此,您可以使用一个不包括下划线以匹配值的字符集:

[^=_][^=]*=[^_]+
regex split regex-group
2个回答
1
投票
Demo:

Https://regex101.com/r/7w1wmx/4

    

我想到的是,它不是最优雅的代码,而是到目前为止的问题: my_str ="C_OPS_CITY=SFO_C_OPS_SITE_INDICATOR=Office_IDENTITYCATEGORY=Employee_C_OPS_COMPANY=My Company_" response = my_str.split("=") for x in range(1,response.__len__()): split = response[x].split("_", 1) response[x-1] = [response[x-1], split[0]] response[x] = split[1] print(response)


1
投票
[['C_OPS_CITY', 'SFO'], ['C_OPS_SITE_INDICATOR', 'Office'], ['IDENTITYCATEGORY', 'Employee'], ['C_OPS_COMPANY', 'My Company'], '']

我们的想法是,我们首先按照平等的符号分开,因为我们知道这些始终存在以界定钥匙和值,然后我们只是在第一个下划线('_ _')上拆分了我们看到的第一个下划线('_ _'),此后的任何文本下划线下降了。是下一个学期的关键,我们浏览每个元素这样做。
(编辑) 我还注意到,我只是在不知道您使用哪种语言的情况下使用Python,但该解决方案应在其他语言中很容易重现,尽管进行了少量调整。


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.