Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Github“;“分支名称模式”;否定_Regex_Github - Fatal编程技术网

Regex Github“;“分支名称模式”;否定

Regex Github“;“分支名称模式”;否定,regex,github,Regex,Github,在Github上,当您转到分支设置并创建“分支保护规则”时,如何指定除“主”之外的任何分支?我尝试了一系列类似正则表达式的表达式,但似乎都不起作用:(您可以使用负前瞻来断言字符串“master”不匹配: ^((?!^master$).)*$ 您可以测试这个regexGitHub使用fnmatch与提供的任何模式进行匹配,以找出适用于分支保护的规则的分支 GitHub还没有一个精确的fnmatch模式,它可以精确地解析除master之外的任何内容,但最接近它的模式是: *[!master]*

在Github上,当您转到分支设置并创建“分支保护规则”时,如何指定除“主”之外的任何分支?我尝试了一系列类似正则表达式的表达式,但似乎都不起作用:(

您可以使用负前瞻来断言字符串“master”不匹配:

^((?!^master$).)*$

您可以测试这个regex

GitHub使用
fnmatch
与提供的任何模式进行匹配,以找出适用于分支保护的规则的分支

GitHub还没有一个精确的
fnmatch
模式,它可以精确地解析除master之外的任何内容,但最接近它的模式是:

*[!master]*
但这也将排除只有
m
a
s
t
e
r
的分支,或只有这些字母组合的分支


查看有关上述内容的更多详细信息,我通过创建六条单独的规则解决了这一问题:

[!m]*
m[!a]*
ma[!s]*
mas[!t]*
mast[!e]*
maste[!r]*

您可以使用以下内容创建规则:

master
然后创建另一个规则(在第一个规则之后):

然后,第二个规则将适用于除master之外的所有分支,因为master包含在前面的规则中:


我不确定,但尝试一下
{m,[^m]*,ma,m[^a]*,mas,ma[^s]*,mast,mast[^e]*,maste,mast[^e]*,maste[^r]*}
@revo“规则无效”:(Github的fnmatch实现似乎有限。有人发现了吗?没有。给出的消息是:
^((?!^master$)规则无效。)*$
github的分支保护规则似乎只支持通配符,而不支持正则表达式github规则以fnmatch为基础,而不是以RegeXey@MadhuBhat为基础,
fnmatch
page从不谈论
[!…]
语法。您介意告诉我它是从哪里来的吗?@revo文档中没有提供这种情况的示例,但我是根据给出的示例推导出来的。使用
*c*
[set]的语法
!或^
是求反运算符。我在文档中发现
的行为与对字符类求反的行为相同。它的意思是
[!master]
并不意味着不
master
,但它既不意味着
m
a
s
t
e
也不意味着
r
。切换到
main
作为默认分支将使生活更简单的具体示例。+1是一个聪明的解决方案。
**/**