我正在使用python,现在我想要匹配一个空格或字符串的结尾,所以我有正则表达式".*?[ $]"
。
但经过测试并看到它无效后,我查看了documentation并发现特殊字符在集合中失去了特殊含义。
有没有办法将这个含义放回到集合中?
答案 0 :(得分:2)
那是因为你的正则表达式不正确,你的正则表达式将字面上匹配.*?
+空格或字符$
。(请注意,字符类中除]
之外的每个正则表达式字符都将被转义)< / p>
相反,你可以使用积极的展望:
.*(?= |$)
答案 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|$)
这是不同答案的组合。