正则表达式在 c# Azure 函数中包含一个(小写、大写、数字、给定的特殊字符)
Regex to include one (lowercase, uppercase, number, given special characters) in c# Azure function
我正在用 c# 语言编写一个 Azure 函数。现在我想生成一个包含一个(小写、大写、数字和给定的特殊字符)的密码。
我在 Azure 函数中使用 Fare for c#
Azure 函数:-
using Fare;
var regex=@"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/";
var xeger = new Xeger(regex);
var result = xeger.Generate();
log.Info("result" + result);
错误:-
2017-08-30T10:20:12.045 exceptionSystem.InvalidOperationException: state
at Fare.Xeger.Generate(StringBuilder builder, State state)
at Fare.Xeger.Generate()
at Submission#0.<Run>d__1.MoveNext() in D:\home\site\wwwroot\HttpTriggerCSharp1\run.csx:line 13
2017-08-30T10:03:28.989 Exception while executing function: Functions.HttpTriggerCSharp1. Microsoft.Azure.WebJobs.Script: One or more errors occurred. Fare: state.
第 13 行的错误是 var regex=...
请帮我解决这个问题。
异常来自[A-Za-z\d#$@!%&*?]
这部分,即\d
之后的字符异常。如果你想匹配一个数字,只需将它更改为 0-9
;像 :[A-Za-z0-9#$@!%&*?]
或像 [A-Za-z#$@!%&*?\d]
.
那样移动到结尾
但是你的复杂正则表达式会在很长一段时间后产生;)。
Note: There are some rare results of using \d
inside [..]
;).
一个更好的正则表达式来满足你的需要,我认为可以是这样的:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$@!%&*?]).{8,}
解释:
(?=.*\d) => there is at least one digit
(?=.*[a-z]) => there is at least one lowercase character
(?=.*[A-Z]) => there is at least one uppercase character
(?=.*[#$@!%&*?]) => there is at least one special character
.{8,} => length is 8 or more
我正在用 c# 语言编写一个 Azure 函数。现在我想生成一个包含一个(小写、大写、数字和给定的特殊字符)的密码。
我在 Azure 函数中使用 Fare for c#
Azure 函数:-
using Fare;
var regex=@"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/";
var xeger = new Xeger(regex);
var result = xeger.Generate();
log.Info("result" + result);
错误:-
2017-08-30T10:20:12.045 exceptionSystem.InvalidOperationException: state
at Fare.Xeger.Generate(StringBuilder builder, State state)
at Fare.Xeger.Generate()
at Submission#0.<Run>d__1.MoveNext() in D:\home\site\wwwroot\HttpTriggerCSharp1\run.csx:line 13
2017-08-30T10:03:28.989 Exception while executing function: Functions.HttpTriggerCSharp1. Microsoft.Azure.WebJobs.Script: One or more errors occurred. Fare: state.
第 13 行的错误是 var regex=...
请帮我解决这个问题。
异常来自[A-Za-z\d#$@!%&*?]
这部分,即\d
之后的字符异常。如果你想匹配一个数字,只需将它更改为 0-9
;像 :[A-Za-z0-9#$@!%&*?]
或像 [A-Za-z#$@!%&*?\d]
.
那样移动到结尾
但是你的复杂正则表达式会在很长一段时间后产生;)。
Note: There are some rare results of using
\d
inside[..]
;).
一个更好的正则表达式来满足你的需要,我认为可以是这样的:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$@!%&*?]).{8,}
解释:
(?=.*\d) => there is at least one digit
(?=.*[a-z]) => there is at least one lowercase character
(?=.*[A-Z]) => there is at least one uppercase character
(?=.*[#$@!%&*?]) => there is at least one special character
.{8,} => length is 8 or more