当前位置: 首页 > 面试题库 >

根据正则表达式分割字符串

堵宏毅
2023-03-14
问题内容

我有表格形式的命令输出。我正在从结果文件中解析此输出,并将其存储在字符串中。一行中的每个元素都由一个或多个空格字符分隔,因此我正在使用正则表达式来匹配1个或多个空格并将其拆分。但是,每个元素之间都会插入一个空格:

>>> str1="a    b     c      d" # spaces are irregular
>>> str1
'a    b     c      d'
>>> str2=re.split("( )+", str1)
>>> str2
['a', ' ', 'b', ' ', 'c', ' ', 'd'] # 1 space element between!!!

有一个更好的方法吗?

每次拆分后都会str2添加到列表中。


问题答案:

通过使用()您将捕获该组,如果仅删除它们,则不会出现此问题。

>>> str1 = "a    b     c      d"
>>> re.split(" +", str1)
['a', 'b', 'c', 'd']

但是,不需要正则表达式,str.split没有指定任何定界符将为您将其分隔为空白。在这种情况下,这将是最好的方法。

>>> str1.split()
['a', 'b', 'c', 'd']

如果您真的想要正则表达式,则可以使用它('\s'代表空格,并且更清晰):

>>> re.split("\s+", str1)
['a', 'b', 'c', 'd']

或者您可以找到所有非空白字符

>>> re.findall(r'\S+',str1)
['a', 'b', 'c', 'd']


 类似资料:
  • 问题内容: 我有一个字符串,需要根据出现的“,”(逗号)进行拆分,但是需要忽略在一对括号内出现的任何字符串。例如, 应拆分为 问题答案: 对于非嵌套 嵌套 (括号内的括号)

  • 问题内容: 我有一个字符串,我想使用regex表达式拆分此字符串,以便该函数返回数组: 我将如何使用Swift进行此操作? 编辑 我的问题不同于链接的问题。我意识到您可以使用迅速拆分字符串。问题是该问题没有解决如何制作正则表达式的问题。我尝试使用,但是没有用。 如何使该部分成为正则表达式? 问题答案: Swift到目前为止还没有本地正则表达式。但提供。 运行此将输出

  • 问题内容: 我真的是Go的新手,到目前为止一直都很喜欢。我正在尝试找到一种使用正则表达式而不是字符串来拆分字符串的好方法。谢谢 http://nsf.github.com/go/strings.html?f:Split! 问题答案: 如果您只想分割某些字符,则可以使用,否则我将使用。

  • 主要内容:实例下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或

  • 我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?