Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式模式匹配及其局限性_Regex - Fatal编程技术网

Regex 正则表达式模式匹配及其局限性

Regex 正则表达式模式匹配及其局限性,regex,Regex,我正在学习Regex功能,并对其有基本的了解 我现在正在研究如何使用它们进行模式匹配。我不确定的一件事是,它们是否可以用于模式匹配 我已经了解了这个特定的模式,我想知道正则表达式是否适合评估模式是否匹配 阿巴 CDDC 杜德 在上面,第一个和最后一个必须匹配,中间的2-这是正则表达式可以用来匹配的模式吗 如果我将这些组合添加到上面的模式中,正则表达式还能匹配它吗 ACACR DJB 同样,这里的模式是关于在给定索引处匹配的项,因此位置0处的值也出现在位置2 这是正则表达式的适当用法还是我应该使用

我正在学习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
  • \i
    输出递增1的序列号
  • \p
    输出剪贴板内容

…因此类似于
\R(1)
的功能也可以提供“第一次捕获反转”功能。但如前所述:尚未遇到,也不太可能遇到。

@anubhava条目必须在同一索引处匹配,例如索引0和4处的项目必须在所有模式中相同
ACACACR
,并且
DJB
可以使用
^(.)进行匹配。\1.*
如果我不知道必须匹配的索引如何,或者图案的长度?我需要你举个例子来回答这个问题。如果我不知道必须匹配的索引,或者图案的长度如何?@Alex:你有例子吗?在实际情况中,您并不是以索引为基础,而是以遵循其他模式的模式为基础。因此,您的示例可以解释为匹配一个字符,匹配另一个字符,匹配一个字符,使其与第二组相同,匹配下一个字符,使其与第一组相同。