我如何使用string.Format在正则表达式中输入一个值,其中正则表达式中已经有大括号来定义重复限制?(我的思维是因为语法碰撞而混浊)
例如,正常的正则表达式是" ^\d {0,2} ",我希望从属性MaxLength中插入'2'
谢谢.
Mar*_*ers 19
用双花括号替换单个花括号:
string regex = string.Format(@"^\d{{0,{0}}}", MaxLength);
Run Code Online (Sandbox Code Playgroud)
如果这让你的眼睛受伤,你可以使用普通的字符串连接:
string regex = @"^\d{0," + MaxLength + "}";
Run Code Online (Sandbox Code Playgroud)
您可以通过将花括号加倍来逃避花括号:
string.Format("Hello {{World}}") // returns "Hello {World}"
Run Code Online (Sandbox Code Playgroud)
在您的情况下,将是这样的:
string regexPattern = string.Format("^\d{{0,{0}}}", MaxLength);
Run Code Online (Sandbox Code Playgroud)