【发布时间】:2019-01-13 23:13:04
【问题描述】:
我想匹配全名中的一些名称,即名称+某些信息,例如发布年份或作者。 我想在 fullName 中获取 realName。
[author1] Shuu [Digital]
[author1] Paradise ~★ Special Edition
(magazin) [kulmov_ (Kurowa)] Channel (Fate/Grand Order) [Chinese] [*'N]
(COMIC1☆7) [ComicCon] X-Men!! (Marvel)
(magazin) [Rave (Jacky)] SPLASH 11 (Microsoft)
[anotherauthor] name1 | name2 (Hatsujou Complex) [English]
[author7 (aurhot234)] Connect (Project) [Digital]
[author3] ~Hellverse~ (COMICcon 2017)
[author4] Escape [English] [Decensored]
我发现该名称几乎总是在“]”或“)”之后。然后是一个空格,然后是名称。名称后面是一个空格,或者什么都没有,或者是“(”或“[”。 名称可以包含一些非 ASCII 吗?符号。全名可以包含日本符号。
我找到了:
]\s+(.+)+\s*[\(|\[|\s]*
我不知道为什么,但它确实与“]”匹配,直到字符串的最后,包括空格。 但正如我所见,它应该只匹配“]”之后的所有内容,获取真实姓名,然后在找到“(”或“[”后停止。
我该如何解决这个问题?
【问题讨论】:
-
请显示您期望的结果。
-
.+将匹配字符串末尾的所有内容,而模式的其余部分不必匹配任何内容,因为它们有*量词。 -
(.+)+的目的是什么?外部/最后一个+只会触发一次,因为内部/第一个+已经抓住了一切。
标签: java regex regex-group regex-greedy