我是RegEx的新手,正在尝试设计一个与以下字符串匹配的RegEx:
模式1由逗号和空格分隔:KEPM39、JEMGH5、HEPM21
。。。(重复)
模式2仅由空格分隔:KEPM39 JEMGH5 HEPM21
。。。(重复)
模式3仅用逗号分隔:KEPM39、JEMGH5、HEPM21
。。。(重复)
这是我的概念:"^[a-zA-Z0-9]{6,}[,\s]$"
但它似乎是错误的。
#我想验证整个字符串,并使用javascript
#重复更改以重复更合适。
function validate(){
var term = "JEPM34, KEPM11 ";
var re = new RegExp("^[a-zA-Z0-9]{6,}[,\s]+$");
if (re.test(term)) {
return true
} else {
return false
}
}
提前谢谢你!
如果需要一致的分隔符,并且可以有尾随空格(如示例数据中所示),则可以使用带有反向引用的捕获组来保持一致的分隔符,并在末尾匹配可选空格。
请注意,您也可以使用\s
,但也可以匹配换行符。
使用test将返回一个布尔值,因此不必使用return true或false,但可以返回测试结果`
^[A-Z\d]{6}(?:(, ?| )(?:[A-Z\d]{6}\1)*[A-Z\d]{6} *)?$
模式匹配:
^
字符串的开头[A-Z\d]{6}
匹配字符A-Z或数字的6次出现(?:
非捕获组作为一个整体进行匹配
(, ? | )
捕获组1,匹配逗号和可选空格,或者匹配用作反向引用的空格(?:[A-Z\d]{6}\1)*
可选地重复列出的任何内容,后跟反向引用\1
到组1,它将匹配相同的分隔符[A-Z\d]{6}*
匹配末尾列出的任何空格和可选空格正则表达式演示
const regex = /^[A-Z\d]{6}(?:(, ?| )(?:[A-Z\d]{6}\1)*[A-Z\d]{6} *)?$/;
const validate = term => regex.test(term);
[
"KEPM39, JEMGH5, HEPM21",
"KEPM39 JEMGH5 HEPM21",
"KEPM39,JEMGH5,HEPM21",
"JEPM34, KEPM11 ",
"JEPM34, KEPM11",
"JEPM34",
"KEPM39, JEMGH5 HEPM21, HEGD44 ZZZZZZ",
"KEPM39, JEMGH5 HEPM21"
].forEach(s =>
console.log(`${s} ==> ${validate(s)}`)
);
一种非常宽松的验证方法可能是:
^[A-Z\d]{6}(?:[ ,]+[A-Z\d]{6})*$
请参阅在线演示。使用松散,我的意思是[ ,]
没有检查您字符串中的每个分隔符是否与每个定义相同。因此,即使"KEPM39, JEMGH5 HEPM21, HEGD44 ZZZZZ"
也将有效。
我需要在以下条件下使用C#中的正则表达式匹配字符串: 整个字符串只能是字母数字(包括空格) 最大长度不得超过15个字符(包括空格) 首先 如果这些先决条件中的任何一个被打破,比赛就不会进行。 以下是我目前掌握的情况: 下面是一些应该匹配的测试字符串: 堆栈溢出 伊姆特最伟大的 一个 超人23s 一二三 还有一些不应该匹配的(注意空格): 堆叠 [double_space] 溢流岩石 23你好 这是
null 匹配:“123”、“ABC123”、“ABC123”、“10.00”、“ABC.123”、“FOO10.00” 不匹配:“糖”、“拉什”、“XYZ” 在下面的示例字符串中,我想要的匹配以粗体-斜体表示:789--789 ABC 123 10.00 ABC 123 123ABC ABC 123ABC ABC 123.ABC
我正在尝试使用正则表达式验证ruby类中文本字段中逗号分隔的单词字符串。以下应该是有效的: 以下内容应无效: 我以为这能行 在Rubular上,它似乎是有效的,但当我在我的类中进行如下验证时,它会接受应该是无效字符串的内容。 我不确定我的问题是在于正则表达式还是验证方法本身。感谢任何帮助。
其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。
我试图构建一个正则表达式来匹配这些字符串: jfldfldf ldjfdlf ldfl ldfldf 8998 dfjldjf 89dfdf DF899 ljdljf[dff]DFDFDF(fdfdf)898 要求: 字符串应仅以任何小写或大写字符(A-Z)开头 它可能包含空格或括号() 不允许任何其他特殊字符 我尝试了,但它仍然接受其他特殊字符。
我试图匹配包含字母数字、连字符、下划线和空格的字符串。 连字符、下划线、空格和数字是可选的,但第一个和最后一个字符必须是字母。 例如,这些都应该匹配: 我试过这个: 但它在开始/结束时与空格、下划线或连字符匹配,但它应该只允许在两者之间。