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:您使用的语言/工具是什么?请回答您的问题并添加预期结果。