我有一组由连字符分隔的ID,其中至少可以有6个字符,包含字母数字值和一些特殊字符,在末尾,只有数字值是不允许的。如下所示:
YUIO-10GB-BG4 ==> Should match
U-VI1.1-100-WX-Y9 ==> Should match
1-800-553-6387 ==> Shouldn't match because all are digits
T-Series ==> Shouldn't match as all only 2 letters are capital
我正在尝试下面给出的具有以下规则的以下模式,但面临一些测试查询的困难...
((?=\S{6,})[A-Z]{1,}(([A-Z0-9./+~]+){0,}-){1,}[A-Z0-9./+~]+=*)
https://regex101.com/r/d8MFRE/5
您可以使用以下正则表达式来获取所有匹配项,然后过滤掉那些不包含带有正则表达式的字母的匹配项:
/(?:^|\s)(?=\S{6,})(?=\S*[A-Z])([A-Z0-9./+~]+(?:-[A-Z0-9./+~]+)+=*)(?!\S)/g
请参阅正则表达式演示。
详细信息
(?:^ |\s)
-字符串或空格的开头 (?=\S{6,})
-6个或更多字符 (?=\S*[A-Z])
-0个非空白字符后必须至少有1个大写ASCII字母 [A-Z0-9./~]
-1大写ASCII字母,数字,
,/,,~
<代码>(?:-[A-Z0-9./~])
-1出现:
- 一个字符
[A-Z0-9./~]
-1大写ASCII字母,数字,
,/,
,~
var s = "1-2-444555656-54545 800-CVB-4=\r\nThe ABC-CD40N= is also supported onslots GH-K on the 4000 Series ISRs using the \r\nXYZ-X-THM . This SM-X-NIM-REW34= information is not captured in the table above \r\nTERMS WITH ONLY DIGITS SHOUD NOT MATCH --> 1-800-553-6387 \r\nNumber of chars less than 6 SHOULD NOT match ---> IP-IP \r\nGH-K\r\nVA-V etc\r\n\r\nFollowing Should match\r\nYUIO-10GB-BG4: Supports JK-X6824-UIO-XK++= U-VI1.1-100-WX-Y9\r\nXX-123-UVW-3456\r\nVA-V-W-K9\r\nVA-V-W\r\n\r\nThe following term is not matching as there is no Alphabet in first term-----------> 800-CVB-4= \r\nThis should match\r\n\r\nCD-YT-GH-40G-R9(=) \r\nCRT7.0-TPS8K-F\r\nJ-SMBYTRAS-SUB=\r\n===============================\r\n\r\nBelow terms should NOT match\r\nGH-K\r\nVA-V-W\r\nST-M UCS T-Series <-- Should NOT match\r\n\r\n";
var m, res=[];
var rx = /(?:^|\s)(?=\S{6,})(?=\S*[A-Z])([A-Z0-9./+~]+(?:-[A-Z0-9./+~]+)+=*)(?!\S)/g;
while(m=rx.exec(s)) {
res.push(m[1]);
}
console.log(res);
其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。
我创建了以下正则表达式: 它应该接受字母数字、空格和撇号。输入应至少为1个字符,最多为24个字符。但它也只接受带撇号和空格的输入(例如,
我无法找到一个合适的正则表达式来匹配任何不以某种条件开头和结尾的字符串。 但用这个我不能实现面具‘。正则表达式结尾的字符。 多谢了。
我试图匹配包含字母数字、连字符、下划线和空格的字符串。 连字符、下划线、空格和数字是可选的,但第一个和最后一个字符必须是字母。 例如,这些都应该匹配: 我试过这个: 但它在开始/结束时与空格、下划线或连字符匹配,但它应该只允许在两者之间。
我希望有一个正则表达式来检查字符串是否包含大小写字母、数字、下划线以及字符限制。这些是字符串中唯一允许的类型。
我有以下正则表达式在Java: 如果输入“a334234234”,验证将失败。但是,如果输入“a3423423fsfsdf”,验证将成功。。。 以下正则表达式也是如此,它检查输入是否仅为数字: 如果输入4SASD,验证将失败,但如果输入3dfsdf22,验证将成功。你能帮我做这个吗?