我是regexp的新手,而且我遇到了琐碎的解析任务; 给出以下结构我需要regexp匹配空行之间的所有文本,所以我可以迭代匹配数组,并解析每个项目作为一个问题
id1. "question title 1"
* variant one
* variant two
* three // comment
id2. "question title 2"
+ variant one
+ two
+ three
id3. "Anoter question title"
another variant
答案 0 :(得分:1)
您可以使用\. ".*
这将. "question title 1"
作为匹配之一。你可以从第四个字符读到最后一个字符。
我无法找到使用正则表达式匹配问答行的方法。因为,这个正则表达式将匹配除\. "[\s\S]+
之外的多行,但它将匹配到字符串的末尾,将所有问题和答案匹配为单个字符串。
如果我们假设答案总是以+或*开头,另一种选择是使用(\. ".*)|([\*\+].*)
这将匹配问题和答案。但问题和答案将是单独的匹配。
另一种方法是使用id. "
分割字符串。这会将您的每个问题和答案分成另一个字符串。但是,您可能必须手动删除问题末尾的"
。
我能想象的另一种方法是使用^\s*$
分割整个字符串。这将使用空行拆分字符串,并将问题和答案作为一个单独的组给出。我希望这有帮助。