【问题标题】:how to read the string and split the data and append to a variable如何读取字符串并拆分数据并附加到变量
【发布时间】:2019-10-21 05:35:31
【问题描述】:
`string = "LOpener - 119","L2 Sportime Syosset Open - 100033419","Sport"`

我必须读取这个字符串并检查L1B,L2,L1 是否存在于字符串中并附加到一个名为 level 的变量中。如果有字符串,那么它应该返回 null

【问题讨论】:

  • 变量 = string.split()[0]
  • 上述情况可以帮忙

标签: python regex split


【解决方案1】:

试试这个,

使用正则表达式:-

如果输入是字符串,

所有出现在一个字符串中,

>>> s = "L1B Armonk Indoor November L2 Opener - 100165419"
>>> _grp = re.findall('L1B|L2|L1', s)
>>> level = " ".join(_grp) if _grp else ""
>>> level
'L1B L2'
>>> 

在单个字符串中出现一次,

>>> import re
>>> string = "L1B Armonk Indoor November Opener - 100165419"
>>> _grp = re.search('L1B|L2|L1', string)
>>> level = _grp.group() if _grp else None
>>> level
'L1B'
>>> 

如果输入是元组,

>>> import re
>>> string = "L1B Armonk Indoor November Opener - 100165419","L2 Sportime Syosset Open - 100033419","Sportime Syosset Open - 1000567419"
>>> " ".join(re.search('L1B|L2|L1', i).group() if (i and re.search('L1B|L2|L1', i)) else '' for i in string)
'L1B L2 '
>>>

>>> string = "L1B Armonk Indoor November Opener - 100165419","L2 Sportime Syosset Open - 100033419","Sportime Syosset Open - 1000567419"
>>> level = " ".join(i.split()[0] if i and i.split()[0] in ['L1B','L2','L1'] else '' for i in string) # you can replace '' with None if you want
>>> level
'L1B L2 '
>>> 

your `string` definition will give it as a `tuple`

【讨论】:

  • 感谢 Mohideen bin Mohanmmed 它运行良好,现在如果字符串“L1B Armonk Indoor November L2 Opener - 100165419”如果它同时具有 L1B、L2 它应该附加到变量中,但是这个当前的逻辑带来了 wteva出现在第一个 fr ge fr abv 字符串 L1B 将在 varibale 但我想要 L2 所以变量应该同时具有 L1B,L2
  • 这就是我昨天问的问题.. 上面的逻辑一次会得到一个,它可以是字符串的任何部分.. 所以我需要澄清一下,一个可以是 n 次出现?是这样吗?
  • 所以将正则表达式从 re.search() 更改为 re.findall() 我已经修改了我的答案检查它
【解决方案2】:

将字符串拆分为数据并将L1B附加到变量

代码

string = 'L1B Armonk Indoor November Opener - 100165419'
var = string.split()[0]
print(var)

结果

Out[1]: 'L1B'

【讨论】:

    【解决方案3】:

    我认为这是您所期望的。

    string = "L1B Armonk Indoor November Opener - 100165419","L2 Sportime Syosset Open - 100033419","Sportime Syosset Open - 1000567419"
    
    
    variable = []
    
    for str in string:
         if 'L1B' in str:
                 variable.append('L1B')
         elif 'L2' in str: 
                 variable.append('L2')
         elif 'L1' in str:
                 variable.append('L1')
         else:
                 variable.append('null')
    
    print (variable)
    

    【讨论】:

    • @kavi 你能解释一下你的问题吗......是的,如果条件满足,对于字符串中的每个元素,你将附加一个空值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多