字符串的正则表达式之前和之后都没有任何字母字符
Regex for string neither preceded nor followed by any alphabet character
我有这些关键字:
- 顶部
- 顶蓝
- 蓝顶
- 我的顶
- 浅绿色顶部
- 纯棉
- 笔记本电脑
- 笔记本电脑光面
- 绿顶0192
- 桌面 45WAI
- 最佳
(更新条件)
12。 village_top1993
所需的匹配项是:top, top-blue, blue-top, my top, light-grn-top, top-cotton, green top 0192, village_top1993
我想在满足这些条件的情况下创建一个正则表达式:
- 字符串顶部在 "top" 前后不能有任何字母表 (a-z),分别像 "laptop" 和 "topbest"
- 字符串顶部可以在其前后包含任何标点符号或特殊字符。
- 字符串顶部可以在相邻位置旁边有任何特殊字符或字母表示"abcd top xyz"(这是一个匹配项)
到目前为止我所做的是[^a-zA-Z]top[^a-zA-z]
,但这不符合我的条件
也许那个符合您的需要:https://regex101.com/r/ptYfA5/1
图案:
\w*?\btop\b\w*
其中 \w
是 "top" 之后 and/or 之前任意长度的字字符 a(*
量词)。 \b
表示单词边界。
如果你想涵盖前导数字的东西,你也可以写类似
(^[0-9]+?\. *)?\w*?\btop\b\w*
来自德国的问候。
在您提供的正则表达式中,您在 Z
:
上遗漏了一个大写字母
[^a-zA-Z]top[^a-zA-z]
应该是 [^a-zA-Z]top[^a-zA-Z]
我建议使用:
[^a-zA-Z](top)[^a-zA-Z]
使用 \btop\b
似乎也不错。
使用负环视:
(?<![a-zA-Z])top(?![a-zA-Z])
这个正则表达式适合您的需要吗?
.*(?<![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
我有这些关键字:
- 顶部
- 顶蓝
- 蓝顶
- 我的顶
- 浅绿色顶部
- 纯棉
- 笔记本电脑
- 笔记本电脑光面
- 绿顶0192
- 桌面 45WAI
- 最佳
(更新条件)
12。 village_top1993
所需的匹配项是:top, top-blue, blue-top, my top, light-grn-top, top-cotton, green top 0192, village_top1993
我想在满足这些条件的情况下创建一个正则表达式:
- 字符串顶部在 "top" 前后不能有任何字母表 (a-z),分别像 "laptop" 和 "topbest"
- 字符串顶部可以在其前后包含任何标点符号或特殊字符。
- 字符串顶部可以在相邻位置旁边有任何特殊字符或字母表示"abcd top xyz"(这是一个匹配项)
到目前为止我所做的是[^a-zA-Z]top[^a-zA-z]
,但这不符合我的条件
也许那个符合您的需要:https://regex101.com/r/ptYfA5/1
图案:
\w*?\btop\b\w*
其中 \w
是 "top" 之后 and/or 之前任意长度的字字符 a(*
量词)。 \b
表示单词边界。
如果你想涵盖前导数字的东西,你也可以写类似
(^[0-9]+?\. *)?\w*?\btop\b\w*
来自德国的问候。
在您提供的正则表达式中,您在 Z
:
上遗漏了一个大写字母
[^a-zA-Z]top[^a-zA-z]
应该是 [^a-zA-Z]top[^a-zA-Z]
我建议使用:
[^a-zA-Z](top)[^a-zA-Z]
\btop\b
似乎也不错。
使用负环视:
(?<![a-zA-Z])top(?![a-zA-Z])
这个正则表达式适合您的需要吗?
.*(?<![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