我有一个表格形式的命令输出。我正在解析结果文件的输出并将其存储在字符串中。一行中的每个元素由一个或多个空格字符分隔,因此我使用正则表达式匹配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都会附加到列表中。
当您使用re时。拆分
并且拆分模式包含捕获组,这些组将保留在输出中。如果您不想这样做,请使用非捕获组。
str.split
方法将自动删除项目之间的所有空白:
>>> str1 = "a b c d"
>>> str1.split()
['a', 'b', 'c', 'd']
医生来了:http://docs.python.org/library/stdtypes.html#str.split
通过使用(
,)
,您正在捕获组,如果您只是将其删除,您将不会遇到此问题。
>>> 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']
问题内容: 我有一个字符串,需要根据出现的“,”(逗号)进行拆分,但是需要忽略在一对括号内出现的任何字符串。例如, 应拆分为 问题答案: 对于非嵌套 嵌套 (括号内的括号)
问题内容: 我有以下显示这种格式的文件名: 我想提取第二个下划线之后和之前的中间两个时间戳部分。因此,我使用了以下Python正则表达式字符串拆分: 但这在返回的列表中给了我两个额外的空字符串: 如何仅获取两个时间戳信息?即我想要: 问题答案: 不要使用,使用正则表达式/对象的方法。 您甚至可以命名捕获组并在字典中检索它们,尽管您使用的不是。(这种情况下的regex模式将类似于)
我试图匹配正则表达式模式来替换特定字符串。 示例文本:ABC/1111111 031111111/0318*12345678 我想用“/1222”替换03和18 in/0318,即(2022年12月)。我尝试了string replaceAll方法,但它替换了提供的示例字符串中所有匹配的字符。比如下面; 我尝试过的示例代码: 样本文本。替换(匹配器组(2),“12”); 样本文本。替换(匹配器组(
问题内容: 我有一个格式为String的String ,其中包含任意数量的元素。我想将它拆分的逗号分隔的坐标,也就是检索,和。 我可以用Java正则表达式来做吗?我是一个完整的菜鸟,但希望Java regex足够强大。如果不是,您是否可以建议替代方法? 问题答案: 您可以为此使用。 在 正回顾后发意味着它必须在前面加。在 正向前查找意味着它必须由suceeded 。该意味着它必须在劈裂后的任何空间
问题内容: 我想解决这个问题。 逗号:分割条款 双引号:字符串值(忽略特殊字符) 数组 例如: 输入: 预期输出: 但是我无法获得超越结果。 我写了下面的代码: 我的输出是: 我需要更改以获得预期的输出?我应该坚持使用正则表达式还是其他解决方案更灵活,更易于维护? 问题答案: 这个正则表达式可以达到目的: 它的工作原理是在逗号后添加一个用于匹配成对的方括号的预读-如果您 位于 方括号内,那么您当然
问题内容: 我是regex的新手,我想做的是在特定条件下拆分String,但我不知道该怎么做。 这是样品/条件 我希望字符串被拆分,,,,,, 这可能吗? 问题答案: 如果 确实 需要使用正则表达式,则可能应该使用环顾四周机制,因为您不想 在 此字符 之前 或 之后 进行拆分。 输出: