我有一个MySQL查询,应检查每一行是否包含以下模式:
red[^,]*car
假设我有这些行:
这是一辆红色轿车 红色的车是 我非常喜欢这辆红色轿车 红车
如何更改当前模式以匹配所有示例行,除非存在完全匹配(即最后一行)?
期望的输出:
应该返回这些行:
这是一辆红色轿车 红色的车是 我非常喜欢红色汽车
答案 0 :(得分:2)
.red[^,]*car|red[^,]*car.
我们的想法是在模式之前或之后应该至少有一个字符(.
)(|
),因此它不会完全匹配。
答案 1 :(得分:0)
如果它们不是单独的#34;那么它应该是一个匹配。
以下正则表达式将测试它是否跟随或以字母开头,然后匹配:
[a-zA-Z]\s+(red[^,]*car)|(red[^,]*car)\s+[a-zA-Z]
如果您认为任何其他字符(包括ponctuation)的存在应该匹配,那么将[a-zA-Z]
替换为\S
答案 2 :(得分:0)
尝试这样的事情:
(.+red car.+|red car.+|.+red car)