我来自this question。现在我想要的恰恰相反。 我希望匹配除此模式之外的所有字符:
yearid="[0-9]+"
为什么我这样做?
我尝试了(?!yearid="[0-9]+")
,但拒绝匹配匹配。
答案 0 :(得分:2)
实际上有两种方法可以做到这一点。您可以[^0-9]+
使用^
否定括号内的术语,\D+
\D
其中struct CStruct {
char item[10];
};
是非数字字符。
答案 1 :(得分:0)
re.sub(r'yearid="[0-9]+"', '', string_to_fix)
像正常一样捕获组,然后不替换它,并返回完整的字符串。
或者,如果你想要努力并且否定它:
re.sub(r'(.*?)(?:yearid="[0-9]+")(.*)', '\1\2', string_to_fix)
首先匹配所有内容(.*?)
,直到找到yearid="XXXX"
,将其作为非捕获组(?:yearid="[0-9]+")
匹配,然后匹配其他所有内容(.*)
。最后,它只用第一和第二个捕获组替换原始的完整字符串,基本上切掉了你想要的部分。