我目前正在尝试创建一个正则表达式来匹配法律文章中的枚举,以便为它应用一些样式修改。
这是我现在的正则表达式:
/\R([0-9a-zA-Z])(\.|\))(.*?)(\R\R|$)/gs
https://regex101.com/r/WtT0cT/1
正如您在regex101上看到的那样,问题在于枚举编号3中的子枚举。
我的正则表达式不需要也获取每个子枚举,但它应该获得属于此枚举的所有文本。这意味着对于3号,它应该得到以下结果:
一些文字3 第3号中的更多文字a)3中的子枚举a
b)3中的子枚举b
c)3中的子枚举c
d)3中的子枚举d
某些文本不属于子枚举但属于枚举3
有什么想法吗?
答案 0 :(得分:2)
\h*[0-9a-zA-Z][.)][\s\S]+?(?=\R+\d|$)
<强>解释强>
\h* : 0 or more horizotal spaces
[0-9a-zA-Z] : 1 alphanumeric
[.)] : dot or parenthesis
[\s\S]+? : 1 or more any character, not greedy
(?= : lookahead
\R+\d : 1 or more linebreak, followed by a digit
| : OR
$ : end of string
) : end lookahead