我在试着匹配一些法律文件的链接。我已经过得够多了但我想我错过了什么。这是我现在的工作:
(\d( )?)?(([[a-zA-Z]\.])+?) ([0-9]+?)\b:([0-9]+?)?\b
我有一个可以匹配的基地建筑女巫:
?=可选
number/space?/string/space/number/:/number
但现在,我想选择匹配任何组合的休闲:
-/number
,/space/number
,/space/number/-/number
这是我最好的比赛:
(\d( )?)?(([[a-zA-Z]\.])+?) ([0-9]+?)\b:([0-9]+?)(, [0-9]+?)?(-[0-9]+?)?(, ([0-9]+?)-([0-9]+?)?)?\b
我可以与此相匹配:
8 Law 84:145, 252-320
但不是这个:
8 Law 84:145, 252-320, 458, 517-665
发布于 2017-05-19 20:27:14
你可以用
(\d+)\s*([a-zA-Z]+)\s+(\d+):(\d+)((?:-\d+|,\s\d+(?:-\d+)?)*)
我添加的主要部分是((?:-\d+|,\s\d+(?:-\d+)?)*)
,它匹配并捕获到组0或多个序列:
-\d+
-一个连字符和1+数字|
-或,\s\d+(?:-\d+)?
-逗号、空格、1+数字,然后是-
和1+数字的可选序列。不要忘记代码中Java字符串文字中的双反斜杠。
https://stackoverflow.com/questions/44077439
复制相似问题