我希望匹配一系列字母和由' - '分隔的任意数字的数字。 。例如ABC-1
,ABC-12
,ABC-123
,ABC-1234
等......我查看了示例Regex for numbers only和https://msdn.microsoft.com/en-us/library/3y21t6y4(v=vs.110).aspx。我在下面得到了一个代码。
var regex = new Regex($@"^[A - Z]{{{numberOfLettersBeforeHyphen}}}-\d+");
return regex.IsMatch(stringToMatch);
其中numberOfLettersBeforeHyphen = 3
但是对于上面的例子,它总是返回false。请指出错误所在,这将有助于我实现目标。谢谢大家
答案 0 :(得分:1)
模式中的空格有意义,这就是您当前代码中的原因
// let payload = {
// guess: this.userInput.value
// };
this.props.dispatch(checkAnswer(this.userInput.value));
表示从空间到空间的范围。放下空格:
... Regex($@"^[A - Z]...");
P.S。 var regex = new Regex($@"^[A-Z]{{{numberOfLettersBeforeHyphen}}}-[0-9]+");
...
:.Net [0-9]
表示任何 unicode数字,例如波斯语(\d
);我放۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹
以排除它们。您可能还想添加另一个锚:[0-9]
(如果整个字符串应与模式匹配):
$