我有一份文件,其中包含以下编号项目符号:
PLAN:
1. Make tea.
2. Make coffe.
3. Goto the market.
我使用此正则表达式\:\s+(\d\.\s+[\w \.]+){1,9}
来捕获和提取文件中的弹出列表。但是它只匹配第一个项目符号点。每个列表可以有2-7个子弹点,我打算(\d\.\s+[\w \.]+){1,9}
应该允许匹配重复的子弹点,但事实并非如此。
那么如何才能使用正则表达式提取上述格式的项目符号列表?
答案 0 :(得分:0)
您可以量化单个子弹模式并使用外部捕获组进行包装:
:\s*((?:\s*\d+\.\s+.+)+)
请参阅regex demo
<强>详情:
:\s*
- 一个冒号,然后是0 +空格((?:\s*\d+\.\s+.+)+)
- 第1组捕获1个或多个序列的序列:
\s*
- 0+ whitespaces \d+
- 1+位数\.
- 一个点\s+
- 1+空格.+
- 除了换行符之外的任何1个字符(实际取决于正则表达式的味道和你传递的标志/修饰符)