我正在使用Swiftlint来执行一些我们代码库中的实践。我想添加一个自定义规则,确保在换行符后始终出现{
。我以为我懂得正则表达式,但似乎无法弄清楚。我只检查一行中是否包含除空格以外的任何字符,然后是{
。在{
后面可以有其他的内容。
我的现有代码:
invalid_open_brace:
name: "Open brace should start on its own line"
regex: "(\S+.*\{)"
message: "Open brace should start on its own line"
severity: warning
以下是一些应该匹配和不应该匹配的示例字符串:
// NO MATCH
else if let var1 = var1 as? String, !var1.isEmpty
{
//NO MATCH
class Person
{
// MATCH
int()
{
}
// NO MATCH
function()
{
}
}
// MATCH
function() {
}
{
之前除了\S
字符,你需要使用"\\s[{]"
(检查是否有空格在{
之前)。 - Wiktor Stribiżew"\\S[{]"
(或"\\S\\{"
)(请注意,在作为字符串文字使用时需要双重转义)。 - Wiktor Stribiżew!var1.isEmpty<LBR>{
和Person<LBR>{
之间有什么区别?为什么第一个不匹配而第二个应该匹配? - Wiktor Stribiżew