如何在行尾写一个解析模板?

时间:2018-10-03 14:45:15

标签: regex

My regular expresion

^(([(Title|Relaese Year|Format|Stars):]{0,})([a-zA-Z0-9]{0,}))

我将其应用于的文本如下:

Title: Blazing Saddles
Release Year: 1974
Format: VHS
Stars: Mel Brooks, Clevon Little, Harvey Korman, Gene Wilder, Slim Pickens, Madeline Kahn

问题来了:

enter image description here

1 个答案:

答案 0 :(得分:2)

请注意,分组构造((...))放在方括号内时,不再是分组构造,所有字符都开始匹配它们。但是,您遇到的问题是[a-zA-Z0-9]{0,}与0个或多个字母数字字符匹配。它不匹配空格,任何标点符号或符号。

您可以使用

^(Title|Release Year|Format|Stars): *(.*)

请参见regex demo

使用(.*),您将在第2行中捕获到行尾的所有零个或多个字符。

详细信息

  • ^-一行的开始(如果启用了多行模式)
  • (Title|Release Year|Format|Stars)-组1:组中的任何值
  • : *-一个冒号和0+个空格
  • (.*)-组2:行末尾除换行符以外的任何零个或多个字符。