我想結合snake_case和PascalCase命名約定。因此,宣告class其名稱必須嚴格符合以下格式:Pascal_Snake, Pascal_Snake_Pascal_Etc, OnlyPascal, Pascal。
這就是我試圖在我的esling.config:
'@typescript-eslint/naming-convention': [
{
selector: 'class',
format: null,
custom: {
"regex": "([A-Z]\\w*_?[A-Z]\\w )|([A-Z]\\w*[A-Z]?\\w )",
"match": true,
},
},
]
不幸的是,這regex并不嚴格。我想要的是:
- 之后
_必須至少有一個大寫字母。 - 如果您不提供
_——您必須根據PascalCase格式命名類。
如何獲得?
uj5u.com熱心網友回復:
使用\w 可以匹配大寫/小寫字符和_
您可以在匹配可選重復組中的大寫字符 AZ 之前匹配可選下劃線。
(如果需要,請注意對反斜杠進行雙重轉義。)
\b[A-Z][a-z]*(?:_?[A-Z][a-z]*)*\b
正則運算式演示
如果您不想匹配單個 A 或 AA,則可以將小寫字符重復 1 次以上。
\b[A-Z][a-z] (?:_?[A-Z][a-z] )*\b
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/396625.html
下一篇:嘗試從字串列中的點之間提取字串值
