Regex 如何捕获此可选多行字符串?

Regex 如何捕获此可选多行字符串?,regex,Regex,我们如何捕获这个可选组?(我的意思是使用多条线路) 绿色组->可选组 红线->新线段(重复相同图案) 我的模式: (\t{2}<idx:entry name="dic">\r\n)(\t{4}<idx:orth>)(.+\r\n)(\t{4}<idx:infl>[^</idx:infl>]+)? (\t{2}\r\n)(\t{4})(.+\r\n)(\t{4}[^]+)? 知道如何捕获这个没有固定长度的可选组吗?试试这个: \s*<i

我们如何捕获这个可选组?(我的意思是使用多条线路)

绿色组->可选组

红线->新线段(重复相同图案)

我的模式:

(\t{2}<idx:entry name="dic">\r\n)(\t{4}<idx:orth>)(.+\r\n)(\t{4}<idx:infl>[^</idx:infl>]+)?
(\t{2}\r\n)(\t{4})(.+\r\n)(\t{4}[^]+)?

知道如何捕获这个没有固定长度的可选组吗?

试试这个:

\s*<idx:entry name="dic">\s*<idx:orth>[^<]*\s*(<idx:infl>\s*.*\s*</idx:infl>)

\s*\s*[^我发现这有助于使用多行:

[\s\S]*</idx:infl>
[\s\s]*

+1关于DOM解析器的建议,使用regex解决这个问题让你头疼不已。zalgo答案链接:我只是在检查regex的功能;这只是一个研究案例;你的模式不起作用;我的问题是:如何使用多行?总之,我找到了答案;[\s\s]*@wiki“使用多行”是什么意思?正则表达式仅用于匹配文本的某些部分。然后,程序员必须决定如何处理匹配的文本,如替换它或检查它是否存在等。好的,我想您希望捕获图片中标记为绿色的“可选组”。这将简单地匹配从开始到
的所有内容。