有没有办法在正则表达集中使用特殊字符?

时间:2015-07-11 15:58:37

标签: python regex

我正在使用python,现在我想要匹配一个空格或字符串的结尾,所以我有正则表达式".*?[ $]"

但经过测试并看到它无效后,我查看了documentation并发现特殊字符在集合中失去了特殊含义。

有没有办法将这个含义放回到集合中?

4 个答案:

答案 0 :(得分:2)

那是因为你的正则表达式不正确,你的正则表达式将字面上匹配.*? +空格或字符$。(请注意,字符类中除]之外的每个正则表达式字符都将被转义)< / p>

相反,你可以使用积极的展望:

.*(?= |$)

请参阅演示https://regex101.com/r/sF3qU1/1

答案 1 :(得分:2)

我认为,为了您的目的,一个单词锚就足够了。来自re内部文档(如果您使用类Unix系统,则运行pydoc re):

\b       Matches the empty string, but only at the start or end of a word.

所以,你的正则表达式看起来像:

".*?\\b"

r".*?\b"

答案 2 :(得分:1)

您可以使用以下内容:

a = "testing for fun"

    n = match('[^\s]+',a)

>> testing

答案 3 :(得分:0)

不,不能将特殊含义放回到集合中,因此必须重写正则表达式。

我最终使用了以下正则表达式:.*?(?:\s|$)这是不同答案的组合。