所以我要尝试使用正则表达式解析此文本:
Name: Test Data 1
Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec feugiat nulla id nisi venenatis blandit.
Donec blandit egestas orci, at tristique dui vehicula in. Maecenas fringilla fringilla enim, in pulvinar ex gravida
in. Nam cursus facilisis ante, sed tristique nisl sagittis sed. In auctor felis id neque suscipit ullamcorper. Nunc
faucibus elit sed metus vestibulum, ullamcorper pulvinar nisi auctor. Praesent sodales orci mauris, eget dapibus
mauris sodales in. Ut iaculis, ante vitae ullamcorper semper, metus tortor auctor purus, eu convallis nulla lacus
in tellus. Phasellus feugiat tempus neque, in fringilla nisi scelerisque sed. Donec elementum diam nec mattis dignissim.
我正在尝试对其进行解析以将其加载到数据库中。
使用此表达式,我试图在“名称”和“描述”参数上进行匹配,但也试图在参数值上进行匹配(有时可以是多行)。
(.*):\s(.*)
我已经搜索了一段时间,我似乎无法使其与整个段落匹配,但是当它到达空白行时便停止了。
我希望结果如下:
https://regex101.com/r/mG2ms9/3
谢谢
答案 0 :(得分:0)
您可以使用以下内容:
(.*?):\s([\s\S]*?)(?=\n(?:\n|\w|$))
[\s\S]
匹配任何字符,甚至换行(默认情况下'。'不匹配)。
然后,我们将匹配尽可能少的字符(*?
,直到下一行为空白(\n
)的点为止,并以单词字符(\w
开始),或者是字符串($
)的结尾。
我们可以避免使用\w
选项,因为description参数中的所有新行均以空格开头。如果并非总是如此,则可以将\w
替换为.*:
之类,以检查下一行是否包含“:”,如果停止则停止。
请注意,我禁用了多行模式;在这里不合适。