Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 正则表达式匹配接下来的1到3个单词和后面的任意字符_Regex - Fatal编程技术网

Regex 正则表达式匹配接下来的1到3个单词和后面的任意字符

Regex 正则表达式匹配接下来的1到3个单词和后面的任意字符,regex,Regex,我的正则表达式是: Paragraph 1[34]{1}(\w+\s?){1,5}[\s\S]*?\WReturn Amount\W\shas the meaning specified in\s(Paragraph \S+)\sof this Annex 我的字符串是: Paragraph 13 Elections Variables something next line something else "Return Amount" has the meaning specified in

我的正则表达式是:

Paragraph 1[34]{1}(\w+\s?){1,5}[\s\S]*?\WReturn Amount\W\shas the meaning specified in\s(Paragraph \S+)\sof this Annex
我的字符串是:

Paragraph 13 Elections Variables something
next line something else "Return Amount" has the meaning specified in Paragraph 3(b) of this Annex.
我期待着一个叫做第13段的小组 和a组第3(b)段 第一组可以有1到5个单词


上面的正则表达式似乎不起作用-有什么想法可以解决吗?

那么,您是否试图将单词分组在“选举变量”和“回报金额”之间?您的问题描述不太清楚…
我想试试这样的:
段落(\d+\d+\(\w+\)(\w+\s+{1,5})

段落(\d+\(\d+\)
-匹配
段落
空格、零位或多位数字,或括号内的零位或多位数字

((\w+\s+{1,5})
-匹配零个或多个单词字符,并在单词匹配后匹配零个或多个空格。
{1,5}
应该重复匹配1次或最多3次

编辑:我根据你的评论更新了我的答案。如果您需要明确数字本身,请将
\d+
替换为您需要的数字

编辑2:好的,我想出了这个-
段落\d+(.*\n)。*段落\d\(\w+)(.*)
第一组匹配
段落13
之后的任何内容,第二组匹配
段落(b)


检查这里:

尝试这种模式
段落([\w()]+?\n?{1,6}

[\w()]+
-匹配任意单词字符或
一次或多次

?\n?
-最多一次(单独)匹配空格和新行

{1,6}
-至少匹配一组,最多6次,您最多需要5个单词,但我也在计算
13
3(b)


您错过了段落编号后的空格:

Paragraph 1[34] (\w+\s?){1,5}[\s\S]*?\WReturn Amount\W\shas the meaning specified in\s(Paragraph \S+)\sof this Annex
        here __^

我删除了多余的
{1}

我首先要注意的是,你在
第1段[34]之后缺少了一个空格。
我正在尝试匹配第13段之后的1到5个单词,然后是一个单独的组,匹配第3(b)段,这是否有效?编辑:等等,我想我理解这个问题,但这并没有;在某些情况下,请不要与第13段后面的任何单词匹配reason@Gretel:您使用的语言/工具是什么?请回答您的问题并添加预期结果。