正则表达式检查AND

时间:2018-08-20 03:07:11

标签: regex

我正在尝试检查字符串是否从特定单词开始,并且其中是否还存在特定的子字符串。

所以可以说我是否有这样的字符串:

SCSI\DISK&VEN_MICRON&PROD_1100\4&2096297&0&000200

我需要检查此字符串是否具有4&2096297&0,并且它也从SCSI开始

我这样做了(^SCSI|\\4&2096297&0)。这几乎可以完成工作,但是即使字符串不是从SCSI

开始,它也可以选择子字符串。

Regex101:Attempt

它可以按预期工作,但是问题在于,即使字符串不是从SCSI开始,它也在选择子字符串。

是否可以对它添加AND条件。

1 个答案:

答案 0 :(得分:0)

您不想与|交替使用-如果|的左侧右侧匹配,则将满足正则表达式。您想检查两个条件是否都匹配。在字符串和SCSI的开头之后,尝试重复字符,直到到达4&2096297&0

^SCSI.*4&2096297&0

https://regex101.com/r/xV0tHI/4

如果要捕获已经硬编码的SCSI4&2096297&0,请在它们周围加上括号:

^(SCSI).*(4&2096297&0)