如何在标题更改后匹配一组文本

时间:2019-11-14 23:55:08

标签: regex

这个正则表达式的新手,这里的每个人都是一个很棒的寻求帮助的资源,但是无论如何我都看不到要使该分组正常工作的一切。

我要匹配房间名称以及该房间的产品和服务。房间的数量可以与名称相同,产品或服务的描述可能会更改,但该行始终以“产品”或“服务”开头。

如果有人能指出我正确的方向,那将是不胜感激的。

Master Bedroom
Product description of the product
Product description of the product
Service description of the service
Kitchen
Product description of the product
Services description of the service

1 个答案:

答案 0 :(得分:1)

如果可以在其他后期处理中使用正则表达式,则可能会获得更好的结果。例如,以下正则表达式将匹配所有服务/产品线:

(Product|Service[s]?)(.*)

但是您仍然需要获取标题的名称。您也许可以从以下内容开始:

(.*)\n((Product|Service[s]?)(.*)\n)+

在这种情况下,您的捕获组将包括标题名称,然后是该部分中的所有行;然后您可以使用我提供的第一个正则表达式拆分和处理每个正则表达式。

如果您可以共享用于运行此处理程序的编程语言/工具,我可以帮助您编写代码以从第一个正则表达式正确分割数据。

您可以在regexr上查看此正则表达式的实际作用:

对于输入字符串:

Master Bedroom
Product Bedknobs, cheap
Product Beautiful carpet polish
Service Free pillow sharpening
Kitchen
Product Sink grease
Services Inexpensive cucumber delivery

您将获得以下分组:

Master Bedroom
Product Bedknobs, cheap
Product Beautiful carpet polish
Service Free pillow sharpening

Kitchen
Product Sink grease
Services Inexpensive cucumber delivery

[edit] 请注意,此正则表达式将捕获“ Product / Service”字符串作为其自己的组...计算出,如果不需要它,您总是可以将其丢弃,但是解析后可以访问它:)