Regex 正则表达式重叠

Regex 正则表达式重叠,regex,Regex,我想捕获所有出现的字母,后跟一个数字,但在上面的字母之前没有字母。 因此,在f9、3f9、f99中有一个f9匹配,但在af9中没有。 我有以下正则表达式:([^a-z]|^)([a-z])(\d) 为什么它不能同时匹配f9x0中的f9和x0,以及如何实现这一点?它只匹配f9。 在f9 x0中有两个匹配项 谢谢。x前面没有字符,但您需要一个。您正在寻找一个回头客: (?:^|(?<![a-z]))[a-z]\d (?:^|)(?)? 请参阅a。在x之前没有字符,但您需要一个字符。您正在查找

我想捕获所有出现的字母,后跟一个数字,但在上面的字母之前没有字母。 因此,在
f9
3f9
f99
中有一个
f9
匹配,但在
af9
中没有。 我有以下正则表达式:
([^a-z]|^)([a-z])(\d)

为什么它不能同时匹配
f9x0
中的
f9
x0
,以及如何实现这一点?它只匹配
f9
。 在
f9 x0
中有两个匹配项


谢谢。

x前面没有字符,但您需要一个。您正在寻找一个回头客:

(?:^|(?<![a-z]))[a-z]\d
(?:^|)(?)?

请参阅a。

x
之前没有字符,但您需要一个字符。您正在查找查找:

(?:^|(?<![a-z]))[a-z]\d
(?:^|)(?)?
按照您的要求查看a.


捕获所有出现的符号,后跟一个数字,但在上述符号之前没有符号

正如您所要求的:
捕获所有出现的符号,后跟一个数字,但在上述符号之前没有符号



在regex101.com等网站上输入正则表达式,查看正则表达式的含义。在
x
之前没有字符,但您需要一个字符。您正在寻找一个neg.lookbehind。这是否回答了您的问题?
所有出现的符号
f
不是符号,而是单词字符。输入您将正则表达式导入regex101.com等网站,看看你的正则表达式是什么意思。在
x
之前没有字符,但你需要一个。你正在寻找一个neg.lookbehind。这是否回答了你的问题?
所有出现的符号
f
不是一个符号,而是一个单词字符。有
9
b在
x
之前,它不是要求的字母。阅读问题,我认为这应该可以,对吗?如果我没有弄错,您可以将其缩短为
(?在
x
之前有
9
,它不是要求的字母。阅读此问题,我认为这应该是正确的?如果我没有弄错,您可以将其缩短为
(?为什么我的正则表达式不工作?@andrewCount首先您的正则表达式有太多匹配组,导致结果非常奇怪:-其次是选项
^
([^a-z]|^)中的(字符串开头)已匹配并使用了第一个匹配项
f9
-并且不会继续进行
x0
。第一个捕获是
f9
(以字符串开头)。第二个匹配应该是
9x0
。它不起作用,因为
9
已被捕获,对吗?@andrewcount是。相比之下,如果您使用非消耗性正向查找
(?为什么我的正则表达式不起作用?@andrewCount首先,您的正则表达式有太多匹配组,导致结果非常奇怪:-其次([^a-z]|^)中的选项
^
(字符串开头)已经匹配并使用了第一个匹配项
f9
,并且不会继续进行
x0
。第一个捕获是
f9
(以字符串开头)。第二个匹配应该是
9x0
。它不起作用,因为已经捕获了
9
,对吗?@andrewCount是。相比之下,如果使用非消耗性的正向查找
(?)?
f9      >> f9
f9x0    >> f9, x0
af9    
3f9     >> f9