正则表达式与包含4个组的字符串不匹配

Hel*_*rld 2 c# regex

我想匹配一个字符串,我分成4组:

1.) group has a "-"
2.) group has any char
3.) group has a ":"
4.) group has any char
Run Code Online (Sandbox Code Playgroud)

我试过这个:

Regex regex = new Regex("^[-][.*][:][.*]*$");
bool isMatch = regex.IsMatch("-jobid:3");
Run Code Online (Sandbox Code Playgroud)

isMatch是假的.

我的模式有什么问题?

ang*_*son 5

这里的错误是.*不应该括在括号中.

这个:

[.*]
Run Code Online (Sandbox Code Playgroud)

意思是:

  • 或者星号

这个:

.*
Run Code Online (Sandbox Code Playgroud)

意思是:

  • 任何字符,零次或多次

此外,如果一个点中只有一个合法字符,通常不需要将其括在括号中.

所以试试这个表达式:

new Regex("^-.*:.*$");
Run Code Online (Sandbox Code Playgroud)