簡體   English   中英

Javascript(ExtendScript)Reg Exp比賽

[英]Javascript (ExtendScript) Reg Exp match

我正在Adobe ExtendScript環境(Javascript)中進行嘗試,嘗試匹配字符串中的某個部分,但是我嘗試執行的任何操作似乎均無效。 這是字符串的示例:

Q1: Question 1: this is the first question?

- Answer bit
- Answer bit
- Answer bit

Q2: Question 2: this is the second question?

- Answer bit
- Answer bit
- Answer bit

Q3: Question 3: this is the third question?

- Answer bit
- Answer bit
- Answer bit

我希望能夠匹配整個問題和答案,所以從'Qx'直到下一個Q(或Qx + 1)。 我嘗試的每個RegExp要么只是獲得問題行,要么返回null

非常感謝有關解決方案的幫助,我還沒有明確破解Reg Exp。

您可以通過以下模式獲得它:

/Q\d+: (.+)\n\n([\s\S]+?)(?=\n\nQ\d+:|\n*$)/g

問題在第一個捕獲組中,第二個回答在哪里。 要知道的訣竅是該點與換行符不匹配,這就是為什么當我需要換行符時用[\\ s \\ S]替換它。

你知道先行嗎? 您可以在每個位置使用前瞻性命令來檢查當前字符是否不會引發新問題。 如果不是,請消耗角色並重復。 另請注意. 與換行符不匹配。 另一方面[^]匹配任何字符:

/^Q\d+:(?:(?!Q\d+:)[^])+/gm

或者,如果您想單獨捕獲問題,

/^Q\d+:\s*(.*)((?:(?!Q\d+:)[^])+)/gm

現在,問題在第1組中,答案在第2組中(您可以隨后進行trim )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM