正则表达式查找字符的第一次出现,除非它在某个字符集中

时间:2012-08-21 01:59:36

标签: python regex

我正在尝试匹配这样的字符串:

key:value

但不匹配这些字符串:

"has: stuff"
("or: that")

到目前为止,我有一个看起来像这样的正则表达式:

^(.*?):

这与所有这些示例相匹配。 我该如何防止这种情况?

3 个答案:

答案 0 :(得分:1)

要查找密钥,您可能希望使用正则表达式^\w+(?=:)^(\w+):

答案 1 :(得分:1)

这是一个简单的正则表达式模式:

^(\w+)\:(\w+)$

\w:集合中的一个字符[0-9a-zA-Z]

\w+:一个或多个\ w字符

^:1日之前没有其他工作人员(\ w +)

$:第二名之后没有其他工作人员(\ w +)

答案 2 :(得分:0)

在你的反例中,为了这场比赛的目的,有哪些因素使他们“无效”?它是一开始的标点符号吗?冒号后的空间?

听起来你应该只包括你想要的东西,而不是试图排除你不想要的东西。如果你的键/值对总是由字母数字键组成(即没有标点符号),那么你可以使用一个只是寻找它的正则表达式。

/^([[:alnum:]]+):/