Regex Python过滤连接字符串列表

时间:2014-01-09 12:29:14

标签: python regex

我正在努力学习正则表达式。它应该只匹配那些由|分隔的3个单词列表的字符串。

单词可能包含任何字符(当然没有换行符等),但|

示例:

word01|wörd|wä4rd # only this should be matched
word04|würd|wä4rd|of
word02|wörd|wä4rd|off|j
word01|wörd

我想匹配那些只有2 |的人。一个简单的计数功能可以做到这一点,但在我的情况下这是不可用的。所以我需要一个正则表达式。

这显然不起作用:

^[^\|]+\|[^\|]+\|+[^\|]$

正确的正则表达式是什么?我的方法出了什么问题?

3 个答案:

答案 0 :(得分:2)

您错放了最后一个+符号,而不是:

^[^\|]+\|[^\|]+\|+[^\|]$

使用

^[^\|]+\|[^\|]+\|[^\|]+$
//               ^____^

答案 1 :(得分:2)

正确的是:'^[^|]+\|[^|]+\|[^|]+$'

答案 2 :(得分:1)

你可以简单地这样做

^([^|]+\|){2}[^|]+$