正規表現:(struct|class|protocol)\s(?!(func|DB|DC|DM))[^\n\r]+\{
は、基本的にclass
、struct
、またはの定義にDC、DB、またはDMの接頭辞が付いていません。これは正常に動作しますが、トップレベルの宣言にのみ一致させたいと考えています。これを実現するために、私はすなわち空白文字がない文字列と一致する
class ThisClassMatches { // this class triggers a match
struct ThisStructDoesNotMatch { // This struct shouldn't trigger a match
}
}
、彼らの前に空白が含まれていない唯一のマッチ宣言しようとしている私は無駄に[^\s]
、([^\s]|[^\S])
、^[^\s]...regex...$
、すべての組み合わせの多くを試してみました。空白がない場合(つまり、行の最初の文字が文字の場合)にのみ、一致をトリガする適切な正規表現がわからない場合。
P.S.私はiOSプロジェクトでswiftlintを使ってネーミングパラメータを強制していますが、答えに違いがあれば(それはすべきではありません)
なぜあなただけの行の先頭に一致するようにアンカー '^'を使用していませんか? –
それはうまくいきました、なぜ私はそれを考えなかったのか分かりません。私の経験不足は私が推測しているところです。 @ chris85あなたが答えとしてあなたのコメントを追加するなら、私はそれを受け入れます。 –
@BillL私はそれを答えに移しました。 – chris85