我对正则表达式匹配有一个挑战,对于你们中的一个来说可能太简单了。我希望你能帮助我解决这个问题。 我需要使用javascript或VB.net一次性测试字符串格式。字母和数字的组合匹配正则表达式
该字符串可能有两个部分用一个波浪符char〜分开,如str1〜str2或只有一个部分没有波浪符,如str1或str2。
Str1是一个0到8位数字的序列。当str1长度为零时,代字符字符也不存在。
Str2的长度为0到25个字符,其格式必须是字母和数字的组合。请注意,只有字母或数字不好,但两者的任何组合。当str2长度为零时,代字符不存在。
由于str1〜str2的组合是一个可选字段,所以str1和str2的长度都为零,这会导致str1〜str2为空值。
例如12345678〜ab2345cdef和12345和ab2345的格式都是正确的,但12345678〜abcdefgh和12345678〜70934527654的格式不正确,因为第二部分不是字母和数字的组合。
我尝试过解决方案,例如/^([\d]{4,8})(~)([az\d]{0,25})$/.test('12345678~ab2345cdef')尽管我得到正确结果的例子如123456或ab1234,但这并没有产生正确的结果。
有什么想法吗?
预先感谢您
哪个测试字符串没有产生预期的结果?你遇到了什么错误?查看你的场景,你将需要在同一个(使用|)上结合3个不同的正则表达式来匹配不同的可能性:一个匹配只有str1,另一个匹配str2,第三个匹配str1〜str2 。 – GCSDC
感谢您的回复。 – Dave123
我确实使用了三个使用|的正则表达式但是当我使用|即使对于无效的字符串,我也总是如此。/^(([0-9A-ZA-Z]){6,40})|((\ d){12})|((([0-9A-ZA-Z]){6,40}) (\ /)((\ d){12}))$ /此问题之前的主要问题是我无法评估字母和数字的组合。 – Dave123