Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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
如何替换chain regex(notepad+;+;)中的此表达式?_Regex_Chain - Fatal编程技术网

如何替换chain regex(notepad+;+;)中的此表达式?

如何替换chain regex(notepad+;+;)中的此表达式?,regex,chain,Regex,Chain,我有这篇课文 14二25三12四40五10 我想获得“14 2 14 25 3 14 25 12 4 14 25 12 40 5 14 25 12 40 10” 例如,当我将(14 2)替换为(14 2 14)时,14的这一开始之后,我不能在2之后启动它 还有其他选择吗? 例如,使用未包含在匹配中的组(匹配前的组)替换它 请帮帮我这应该能帮到你: Regex:((?:\s?\d++\s?)+(?:[a-zA-Z](?![^a-zA-Z]+\1))+) 更换:$1$2$1 您需要单击“全部替换”按

我有这篇课文

14二25三12四40五10

我想获得“14 2 14 25 3 14 25 12 4 14 25 12 40 5 14 25 12 40 10”

例如,当我将(14 2)替换为(14 2 14)时,14的这一开始之后,我不能在2之后启动它

还有其他选择吗? 例如,使用未包含在匹配中的组(匹配前的组)替换它


请帮帮我

这应该能帮到你:

Regex
((?:\s?\d++\s?)+(?:[a-zA-Z](?![^a-zA-Z]+\1))+)

更换
$1$2$1

您需要单击“全部替换”按钮才能执行此操作(不能一次完成,必须重复此操作,只要可以找到匹配项)

说明

  • \s
    :匹配单个空格字符
  • :上一个表达式必须匹配0或1次
  • \s?
    :将空格字符匹配0或1次
  • \d
    :匹配一个数字字符(相当于
    [0-9]
  • +
    :上一个表达式必须至少匹配一次(u到无穷大)
  • \d+
    :匹配尽可能多的数字字符(但至少一次)
  • ()
    :捕获组
  • (?:)
    :非捕获组
  • ((?:\s?\d+\s?+)
    :匹配可选空格字符,后跟一个或多个数字字符,后跟可选空格字符。表达式由一个非捕获组包围,后跟一个加号。这意味着正则表达式将尝试尽可能多地匹配空格和数字字符的组合(因此最终可以得到类似“14251240”的结果)
捕获组用于保留值,以便在替换中重新使用。如果捕获组中没有非捕获组,则不能简单地在捕获组末尾添加加号,因为它只会记住捕获的最后一位数字(“12”而不是用于构建“14 25 12 40”的整个“14 25 12”)

  • [a-zA-Z]
    :在任何情况下匹配任何英文字母(小写、大写)
  • \1
    :引用第一组中捕获的内容
  • (?!)
    :消极前瞻
  • [^]
    :负字符类,所以
    [^a-zA-Z]
    表示匹配任何内容
  • ((?:[a-zA-Z](?![^a-zA-Z]+\1))+)
    :反向前瞻旨在确保我们不会总是匹配输入文本中的前两个“14”。如果没有它,我们将在一个无限循环中结束,给出的结果是“14 2 14 14 14 25 3 12 4 40 5 10”(重复“25”之前的“14”,直到到达超时)
基本上,对于我们匹配的每一个英文字母,我们都会提前断言第一个捕获组(例如“14”)的内容不存在于我们的数字序列中

对于替换,
$1$2$1
意味着放置捕获组1和2的内容,添加一个空格并再次放置捕获组1的内容