Regex 正则表达式模式匹配及其局限性
我正在学习Regex功能,并对其有基本的了解 我现在正在研究如何使用它们进行模式匹配。我不确定的一件事是,它们是否可以用于模式匹配 我已经了解了这个特定的模式,我想知道正则表达式是否适合评估模式是否匹配 阿巴 CDDC 杜德 在上面,第一个和最后一个必须匹配,中间的2-这是正则表达式可以用来匹配的模式吗 如果我将这些组合添加到上面的模式中,正则表达式还能匹配它吗 ACACR DJB 同样,这里的模式是关于在给定索引处匹配的项,因此位置0处的值也出现在位置2 这是正则表达式的适当用法还是我应该使用其他方法Regex 正则表达式模式匹配及其局限性,regex,Regex,我正在学习Regex功能,并对其有基本的了解 我现在正在研究如何使用它们进行模式匹配。我不确定的一件事是,它们是否可以用于模式匹配 我已经了解了这个特定的模式,我想知道正则表达式是否适合评估模式是否匹配 阿巴 CDDC 杜德 在上面,第一个和最后一个必须匹配,中间的2-这是正则表达式可以用来匹配的模式吗 如果我将这些组合添加到上面的模式中,正则表达式还能匹配它吗 ACACR DJB 同样,这里的模式是关于在给定索引处匹配的项,因此位置0处的值也出现在位置2 这是正则表达式的适当用法还是我应该使用
说清楚,我的问题是关于正则表达式是否可以解决这类问题,而不是解决它的其他方法。对于第一种模式,它类似于“([A-Z])([A-Z])\2\1”。您所说的被称为。这就是允许您使用以前找到的模式构建模式的原因 您的前两个示例可以通过以下正则表达式进行匹配:
^(.)\2\1$
(示例)。在这个表达式中,我们匹配第一个字符并将其放入一个组中(我们需要它以便以后在模式匹配中访问它)。我们也在对第二个角色做同样的事情。然后,我们指示正则表达式引擎,在第3个字符上,我们期望第二组的值相同。在某些语言中,这由\2
或$2
表示。然后我们说,对于第4个字符,我们期望的字符与存储在组1中的相同
您可以扩展上述内容以匹配存储在组中的字符序列
对于第3个和第4个示例,您可以在上述示例的基础上进行构建,使其适合您的需要。正则表达式本身无法检测A,只能检测具有固定长度的字符(如“始终4”或“始终10”字符) 虽然有这样一个特性看起来很简单,但我还没有遇到一个提供这种情况的实现。文本编辑器可能具有以下附加风格:
在\L
\E
输出递增1的序列号\i
输出剪贴板内容\p
…因此类似于
\R(1)
的功能也可以提供“第一次捕获反转”功能。但如前所述:尚未遇到,也不太可能遇到。@anubhava条目必须在同一索引处匹配,例如索引0和4处的项目必须在所有模式中相同ACACACR
,并且DJB
可以使用^(.)进行匹配。\1.*
如果我不知道必须匹配的索引如何,或者图案的长度?我需要你举个例子来回答这个问题。如果我不知道必须匹配的索引,或者图案的长度如何?@Alex:你有例子吗?在实际情况中,您并不是以索引为基础,而是以遵循其他模式的模式为基础。因此,您的示例可以解释为匹配一个字符,匹配另一个字符,匹配一个字符,使其与第二组相同,匹配下一个字符,使其与第一组相同。