我有以下正则表达式来匹配文本文件内容。
如您所见,它只匹配文本的一行
我需要匹配所有三条线。像这样。
并且它不应与文本中任何其他出现的'list'匹配,除非它以{..}结尾。
感谢任何帮助。
谢谢
答案 0 :(得分:1)
你可以以这种精神使用某些东西,在你方便时适应。
(?m)^(?:list.*,\s*)*list.*,?\s*{[^}]*}
(?m) # multiline flag (^ matches begin of line, not of string)
^ # beginning of line
(?: # non captring group
list.*,\s* # list then anything then a mandatory comma, then whitespaces (possibly newline)
)* # zero or more times
list.*,?\s* # at least one list-line, ending or not with a comma
{[^}]*} # what's inside the brackets
使用单独的非捕获组而不是(?:list.*,?\s*)+
可确保多个list
行以逗号分隔。
请参阅demo here
答案 1 :(得分:0)
答案 2 :(得分:0)
试试这个
((?:list*)(?:\:{1,2})\s*[\w\W]*[^\,]*?)