我有以下关键字:
(更新条件)
12。 village_top1993
所需的匹配包括:顶部,顶部蓝色,蓝色顶部,顶部,轻型顶部,顶部棉花,绿色顶部0192, village_top1993
我想创建一个正则表达式,我有这些条件:
到目前为止我所做的是[^a-zA-Z]top[^a-zA-z]
,但这不符合我的条件。
答案 0 :(得分:3)
使用否定的外观:
(?<![a-zA-Z])top(?![a-zA-Z])
答案 1 :(得分:0)
也许这符合您的需求:https://regex101.com/r/ptYfA5/1
图案:
\w*?\btop\b\w*
\w
是&#34; top&#34;之前和/或之后的任何长度(*
量词)的单词-cha a。 \b
表示单词边界。
如果你想覆盖领先数字,你也可以写一些像
这样的东西 (^[0-9]+?\. *)?\w*?\btop\b\w*
来自德国的问候。
答案 2 :(得分:0)
在您提供的正则表达式中,您错过了Z
的大写字母:
[^a-zA-Z]top[^a-zA-z]
应为[^a-zA-Z]top[^a-zA-Z]
我建议使用:
[^a-zA-Z](top)[^a-zA-Z]
@horcrux's suggestion使用\btop\b
似乎也很好。
答案 3 :(得分:0)
这个正则表达式适合您的需要吗?
.*(?<![a-zA-Z])top(?![a-zA-Z]).*
.* ## match any characters before top
(?<![a-zA-Z]) ## negative lookbehind : check we don't have any [a-zA-Z] character before top
top ## assert the string "top"
(?![a-zA-Z]) ## negative lookahead : check we dont have any [a-zA-Z] after top
.* ## match any characters after top