为什么下面的正则表达式不适用于下面的文本?
Regex:
(?=.*\berror\b)(?=.*\balarm\b).*案文:
ns1.alarm.abc
ns2.error.cdb在其他作品中,如何进行多行正则表达式匹配?
发布于 2017-11-09 02:58:32
我认为您正在尝试查找包含error或alarm的字符串,为此您可以尝试以下操作:
试试这个Regex:
(?=.*\b(?:error|alarm)\b).*
解释:
(?=.*\b(?:error|alarm)\b) -用于检查words - error 或 alarm的正向展望.* -如果满足上述条件,则匹配所有字符的0+出现(换行符除外)regex (?=.*\berror\b)(?=.*\balarm\b).*无法工作,因为它试图在同一行/输入字符串中同时找到单词error和alarm。因此,您需要设置一个OR条件,如上面所示。
更新:
要匹配两者,请使用这个。
(?=[\s\S]*\berror\b)(?=[\s\S]*\balarm\b)[\s\S]*如这里所示
https://stackoverflow.com/questions/47192747
复制相似问题