[英]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.