确保不匹配确切单词的模式
Pattern for making sure the exact word won't be matched
我有一个 MySQL 查询,它应该检查每一行是否包含以下模式:
red[^,]*car
假设我有这些行:
this is a red car
red car it is
i like the red car a lot
red car
我如何更改当前模式以匹配所有示例行,除非存在完全匹配(即最后一行)?
期望的输出:
应该return这些行:
this is a red car
red car it is
i like the red car a lot
.red[^,]*car|red[^,]*car.
我们的想法是在您的模式之前或之后至少应该有一个字符 (.
) (|
),因此它不会进行精确匹配。
所以如果它们不是"alone",那么应该是匹配的。
下面的正则表达式将测试它是否跟在或前面有一个字母,然后它将匹配:
[a-zA-Z]\s+(red[^,]*car)|(red[^,]*car)\s+[a-zA-Z]
如果您认为任何其他字符(包括标点符号)的存在应该匹配,则将 [a-zA-Z]
替换为 \S
尝试这样的事情:
(.+red car.+|red car.+|.+red car)
我有一个 MySQL 查询,它应该检查每一行是否包含以下模式:
red[^,]*car
假设我有这些行:
this is a red car
red car it is
i like the red car a lot
red car
我如何更改当前模式以匹配所有示例行,除非存在完全匹配(即最后一行)?
期望的输出:
应该return这些行:
this is a red car
red car it is
i like the red car a lot
.red[^,]*car|red[^,]*car.
我们的想法是在您的模式之前或之后至少应该有一个字符 (.
) (|
),因此它不会进行精确匹配。
所以如果它们不是"alone",那么应该是匹配的。
下面的正则表达式将测试它是否跟在或前面有一个字母,然后它将匹配:
[a-zA-Z]\s+(red[^,]*car)|(red[^,]*car)\s+[a-zA-Z]
如果您认为任何其他字符(包括标点符号)的存在应该匹配,则将 [a-zA-Z]
替换为 \S
尝试这样的事情:
(.+red car.+|red car.+|.+red car)