字符串(固定值)+运算符+整数的正则表达式

本文关键字:运算符 整数 正则表达式 字符串 | 更新日期: 2023-09-27 18:07:52

嗨,我想创建一个自定义正则表达式,其中字符串的第一部分必须固定到字符串索引[10]即@SystemDate之后必须有一个运算符+或-之后,我尝试过的两位数整数值,但没有得到它请通过下面的代码并建议我更改

if (Regex.IsMatch(_SelectedSystem, "@SystemDate{1}[+/-]$ {2}[0-9]{2}$"))
                        {
                            global::System.Windows.Forms.MessageBox.Show("Test");
                        }

字符串(固定值)+运算符+整数的正则表达式

类似于

@SystemDate[+-]'d{2}$

打破你的匹配:

@SystemDate     literally
[+-]            match + or -
'd{2}           match exactly 2 digits
$               end of string

查看演示:

"(^ @SystemDate $) | ^ @SystemDate [+ | -] {1} ' d + $"

您不应该在字符类中使用|符号,每个符号都被视为其中的单个字符。

你需要

@"^@SystemDate(?:[+-]'d+)?$"

看到演示

(?:[+-]'d+)?是一个可选的非捕获组,它可以存在也可以不存在。[+-]完全匹配1个+-