正则表达式:动态创建字符串
Regex: creating string dynamically
需要正则表达式来检查密码策略
我有一个模型:
"password_settings": {
"enable_password_max_length": false,
"enable_password_min_length": false,
"enable_min_number_of_upper": false,
"enable_min_number_of_lower": false,
"enable_min_number_of_numbers": false,
"enable_min_number_of_special_characters": false,
"password_max_length_value": 24,
"password_min_length_value": 1,
"min_number_of_upper_value": 1,
"min_number_of_lower_value": 0,
"min_num_of_numbers_value": 1,
"min_number_of_special_characters_value": 1
},
如果某些标志为“真”,我需要动态创建正则表达式。
例如:
enable_min_number_of_numbers= true
enable_min_number_of_upper = true
min_num_of_numbers_value= 3
min_number_of_upper_value = 2
正则表达式字符串将是
^(?=.*[A-Z]).{"min_number_of_upper_value",}(?=.*\d).{"min_num_of_numbers_value",}$
但这对我不起作用。
我需要:
请帮助我创建 Regex,我可以在其中禁用或启用 Regex 的某些部分以及我可以从 json.
设置计数的地方
谢谢。
鉴于您的 min_number_of_upper_value
包含字符串中允许的 ASCII 大写字母的最小阈值并且 min_num_of_numbers_value
定义了字符串中的最小数字位数,您可以使用
var pattern = $@"^(?=(?:[^A-Z]*[A-Z]){{{min_number_of_upper_value}}})(?=(?:\D*\d){{{min_num_of_numbers_value}}})";
不要使用$
,这个锚需要字符串的结尾。如果您的代码需要完整的字符串匹配,请使用
var pattern = $@"^(?=(?:[^A-Z]*[A-Z]){{{min_number_of_upper_value}}})(?=(?:\D*\d){{{min_num_of_numbers_value}}}).*";
如果您的要求更具体,您可以在其中进一步调整消费 (.*
) 模式。
需要正则表达式来检查密码策略
我有一个模型:
"password_settings": {
"enable_password_max_length": false,
"enable_password_min_length": false,
"enable_min_number_of_upper": false,
"enable_min_number_of_lower": false,
"enable_min_number_of_numbers": false,
"enable_min_number_of_special_characters": false,
"password_max_length_value": 24,
"password_min_length_value": 1,
"min_number_of_upper_value": 1,
"min_number_of_lower_value": 0,
"min_num_of_numbers_value": 1,
"min_number_of_special_characters_value": 1
},
如果某些标志为“真”,我需要动态创建正则表达式。
例如:
enable_min_number_of_numbers= true
enable_min_number_of_upper = true
min_num_of_numbers_value= 3
min_number_of_upper_value = 2
正则表达式字符串将是
^(?=.*[A-Z]).{"min_number_of_upper_value",}(?=.*\d).{"min_num_of_numbers_value",}$
但这对我不起作用。
我需要: 请帮助我创建 Regex,我可以在其中禁用或启用 Regex 的某些部分以及我可以从 json.
设置计数的地方谢谢。
鉴于您的 min_number_of_upper_value
包含字符串中允许的 ASCII 大写字母的最小阈值并且 min_num_of_numbers_value
定义了字符串中的最小数字位数,您可以使用
var pattern = $@"^(?=(?:[^A-Z]*[A-Z]){{{min_number_of_upper_value}}})(?=(?:\D*\d){{{min_num_of_numbers_value}}})";
不要使用$
,这个锚需要字符串的结尾。如果您的代码需要完整的字符串匹配,请使用
var pattern = $@"^(?=(?:[^A-Z]*[A-Z]){{{min_number_of_upper_value}}})(?=(?:\D*\d){{{min_num_of_numbers_value}}}).*";
如果您的要求更具体,您可以在其中进一步调整消费 (.*
) 模式。