regex - 如果它不包含特定模式,我如何匹配所有内容?

标签 regex

我有这样格式的字符串。我想匹配没有 abcd 的字符串在开始时。

abcd.efgh.ijkl
pqrs.efgh.ijkl
xyz.efgh.ijkl

我想出了这个表达 (?<!abcd).efgh.ijkl http://rubular.com/r/jyZMIJxoNz

它有点做我需要的。它匹配 .efgh.ijkl pqrs.efgh.ijkl 的一部分和 xyz.efgh.ijkl并忽略 abcd.efgh.ijkl .但我也希望它匹配 pqrsxyz部分。

我试着做一个这样的条件 (?(?<!abcd)|.*\.efgh.ijkl)但它甚至没有被识别为正则表达式。语法有什么问题?它不是说“如果它以 abcd 开头,则 blank 否则匹配到 .efgh.ijkl 的所有内容?

最佳答案

[^\s]*(?<!abcd).efgh.ijkl

http://rubular.com/r/h11pUhuYSD

应该为您的目的工作。如果目标在更长的字符串中,它甚至会匹配。

关于regex - 如果它不包含特定模式,我如何匹配所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10295547/

相关文章:

JavaScript 正则表达式

regex - Varnish 中的正则表达式?这个正则表达式匹配什么?

正则表达式提取 '=' 符号后的子串

java - 替换字符串中的一个字符

javascript - 使用 RegEx 删除空标签

regex - 相同连续数字的正则表达式

c# - 正则表达式拆分有异常(exception)

正则表达式的首位或末位不能有数字,并且长度必须为 6-20 个字符

用于检测 CSV 文件类型的 Javascript 正则表达式?

regex - 使用 Powershell 打印出与 RegEx 匹配的代码行号