C#学习教程:用一个空格和一个可选的特殊字符验证数字的正则表达式末尾的特殊字符表示“#”后跟5位数字。示例:123456587#2584我尝试了(0(?:d{0,11}|(?=d*d*$)[d]{0,12}))但我不知道如何添加可选的'#',后跟数字。这应该可以解决问题/^d+sd+(?:#d+)?$/在rubular^beginningofstringd+一个或多个数字s任何空白字符d+一个或多个数字(?:beginnon-capturinggroup#文字'#'字符d+一个或多个数字)endnon-capturinggroup$endofstringedit/^0[ds]{,11}(?:#d{,5}?$/matchstartswith0Stringfollowedby最多11个数字或空格。后跟一个可选的#后跟最多5个数字。问题不是很清楚,但macek的建议实际上回答了你关于如何添加'#'可选标签后跟一些数字的问题,所以你应该试试看。(具体来说,(?:#d+)?$是正则表达式的相关部分;(?:#d{0,5})?$将确保存在0到5位数字。)但是,你的正则表达式确保在可选的“#”之前只有1个空格和最多12位数字是不正确的。如上所述,前瞻是没有意义的,因为d{0,11}将匹配开头的0宽度字符串任何字符串(因为这相当于0个数字)。你需要的是/^(?:[ds]{1,13}$)d*sd*$/。这将检查以确保存在正确数量的字符并且它们都是数字或空格,然后它将检查字符串中是否只有一个空格。这里有一些冗余,但这应该不是问题。另外,请注意我使用s而不是空格字符,但请注意这将匹配制表符和其他空格,这可能不是您想要的。Digitcount{1,13}假设字符串由空格组成,没有数字是合法的,但是空字符串是非法的;如果这不是正确的假设,请调整括号中的值。最后,要结合上面的正则表达式以确保空格和数字的正确计数与可选标记的正则表达式,您需要更改前瞻性以便它匹配#和$:它应该是/^(?:[ds]{1,13}(#|$))d*sd*(#d{0,5})?$/。(请注意,我还没有实际测试过上面的正则表达式,所以我不能100%确定中间的(#|$)是否适用于所有实现。如果不行,可以将其替换为多余的(#d{0,5})?)以上是C#学习教程:正则表达式,用于验证带有空格和可选特殊字符的数字的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
