【问题标题】:Getting the values in the list based on separators根据分隔符获取列表中的值
【发布时间】:2019-04-28 15:52:35
【问题描述】:

我想使用正则表达式搜索指定的字符串。我写了以下代码。但是,它显示一个错误。在分隔符中,加载要搜索的值。如果它在那里,它应该被加载到另一个列表中。

代码

import re
value_to_separate = ["prinec-how,are_you&&smile#isfine1"]

separator = ["&&smile","prinec-","#isfine1",",are_you","-how,are"]

for sep in separator:
    for val_sep in value_to_separate:
        val_sep = re.search(separator,val_sep) 
        print(val_sep)

需要的输出:

["&&smile","prinec-","#isfine1",",are_you","-how,are"]

我该如何解决这个问题?

【问题讨论】:

    标签: python regex python-3.x regex-group


    【解决方案1】:

    您绝对不需要正则表达式。实在是太矫枉过正了。使用列表理解:

    [x for x in separator if x in value_to_separate[0]]
    

    代码

    value_to_separate = ["prinec-how,are_you&&smile#isfine1"]
    separator = ["&&smile","prinec-","#isfine1",",are_you","-how,are"]
    
    print([x for x in separator if x in value_to_separate[0]])
    

    以所需格式输出:

    ['&&smile', 'prinec-', '#isfine1', ',are_you', '-how,are']
    

    【讨论】:

      【解决方案2】:

      您将separator 列表传递给re.search,而不是单独的分隔项sep。 将re.search(separator,val_sep) 更改为re.search(sep,val_sep) 还可以使用val_sep.group(0) 来获取您的实际匹配字符串 然后您的代码将更改为。

      import re
      value_to_separate = ["prinec-how,are_you&&smile#isfine1"]
      
      separator = ["&&smile","prinec-","#isfine1",",are_you","-how,are"]
      
      
      for sep in separator:
          for val_sep in value_to_separate:
      
              val_sep = re.search(sep,val_sep)
              print(val_sep.group(0))
      

      输出将是。

      &&smile
      prinec-
      #isfine1
      ,are_you
      -how,are
      

      【讨论】:

        猜你喜欢
        • 2022-06-23
        • 2013-02-27
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多