为了简单起见,假设我有以下文字字符串:
abc[4;?;z;*]def其中4,?,z和*可以以随机顺序出现,由a;分隔,并且是我事先知道的字符(或字符串)。
我有一个正则表达式,它使用‘或’组来匹配字符串:
abc\[(?:z|\*|4|\?|\;)+\]def问题是,如果字符串中缺少一个元素,那么仍然是匹配的,我想检查是否所有元素都存在:
abc[?;z;*]def抓捕组对我来说是无关紧要的。我只想确认整个字符串。
发布于 2020-12-01 11:33:19
您可以使用
abc\[(?=[^][]*z)(?=[^][]*4)(?=[^][]*\?)(?=[^][]*;)(?=[^][]*\*)[z*4?;]+]def见regex演示。详细信息:
abc\[ -一个文字abc[字符串(?=[^][]*z) -在除[和]之外的零或多个字符之后,必须有一个z(?=[^][]*4) -在除[和]之外的零或多个字符之后,必须有一个4(?=[^][]*\?) -在除[和]之外的零或多个字符之后,必须有一个?(?=[^][]*;) -在除[和]之外的零或多个字符之后,必须有一个;(?=[^][]*\*) -在除[和]之外的零或多个字符之后,必须有一个*[z*4?;]+ -集合中的一个或多个字符,z,*,4,?,;]def -一个文字]def字符串。https://stackoverflow.com/questions/65088825
复制相似问题