【问题标题】:Create a list of substrings from string从字符串创建子字符串列表
【发布时间】:2016-02-13 01:11:50
【问题描述】:

我有这个字符串:

"<C (programming language)> <C++ (programming language)> <Programming Languages> <Computer Programming> "

我想获得一个子字符串列表,像这样:

['<C (programming language)>','<C++ (programming language)>','<Programming Languages>','<Computer Programming>']

我尝试使用 re library python 但没有成功

【问题讨论】:

  • 到目前为止你尝试过哪些正则表达式?您是否能够提取至少一个子字符串,例如只是第一个:“”?
  • 我已经尝试使用 re.search 或 re.match 来查找具有此功能的所有子字符串 所以我使用此模式 <.> 但我没有匹配。
  • &lt;.*?&gt; 应该有效,因为您正确使用了非贪婪的*?。用你选择的答案试试。但是这种贪婪的* 与非贪婪的*? 总是令人困惑,所以我也会选择更清晰的&lt;[^&gt;]*&gt;&lt;[^&gt;]+&gt;

标签: python string list python-2.7 substring


【解决方案1】:

使用正则表达式,可以使用:

import re
regexp = re.compile("<[^>]+>")
matches = regexp.findall(my_string)

正则表达式基本上匹配以“”结尾的所有内容。 findall 然后返回所有找到的匹配项。

【讨论】:

    【解决方案2】:

    这可以使用重新导入来完成,尽管另一种解决方案是使用拆分方法,如下所示:

    st = st.split('>')  # splits the string to a list made of elements divided by the '>' sign but deletes the '>' sign
    del st[len(st) - 1]  # Splitting your String like we did will add another unneccesary element in the end of the list
    st = [i + ">" for i in st]  # adds back the '>' sign to the every element of the list
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 2013-08-11
      • 2020-04-21
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      相关资源
      最近更新 更多