我在OS X上使用Qt4.8的Python绑定。
我的工作示例:'[0-9pqw\+\-\*\#\(\)\.][0-9pqw\+\-\*\# \(\)\.]*'
但是,我不想重复两个包含空间的块,一个不包含空格。我猜应该有更好的方法,使用[^],但是如何?
第二个问题:
谢谢。
答案 0 :(得分:2)
您可以在模式的开头和结尾使用否定lookarounds:
^(?![ ])[0-9pqw+*# ().-]*(?<![ ])$
请注意,括号不是必需的,但有助于提高可读性。你的任何逃脱都没有(只要你把-
放在最后)。
答案 1 :(得分:0)
这不符合您的要求吗?
import re
re.match('^[^\W].*[^\W]$', ' aaa ')
(最后一个arg是你的测试字符串)。
如果您想确保长度小于一定数量,请使用花括号。一个字符已用于测试测试字符串的第一个和最后一个字符,并包含[^\W]
表示法。因此,在此示例中,当两侧没有空格且测试字符串不超过4个字符时,存在匹配。
re.match('^[^\W].{1,2}[^\W]$', 'aaaa')