创建符合枚举段落的PHP RegEx

问题描述 投票:1回答:1

我目前正在尝试创建一个正则表达式来匹配法律文章中的枚举,以便为它应用一些样式修改。

这是我目前的正则表达式:

    /\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

任何的想法?

php regex preg-match
1个回答
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

See in action

© www.soinside.com 2019 - 2024. All rights reserved.