JS 正規表示式 API 中是否有一種方法可以重寫輸入,以便僅保留匹配的群組(按順序),但它適用於任意正規表示式(包括沒有捕獲組的正規表示式)?
例如對於正規表示式/abc([D-F] )gh([I-K] )/
和輸入abcFEEDghKIKI
,我想要輸出"FEEDKIKI"
,因為這些是捕獲的部分。
但是,輸入正規表示式也可以是 /([a-zA-Z] )/
,對於相同的輸入,它只會傳回原始文字。
如果正規表示式為 /([0-9] )/
則會傳回空字串。
正規表示式將由工俱生成,但正規表示式有很多,我不想要針對不同數量的捕獲組的特殊情況代碼。
理想情況下,我還能夠以某種方式存取輸入中匹配的長度。
我假設有某種方法可以通過傳遞給replace()
(或類似)的回調來完成此操作,但不清楚如何/是否可以獲取捕獲組的索引(或在JS 中是否有必要)。
本質上,我試圖複製您可以透過 Java 中的 MatchResult
API 執行的操作,其中可以迭代組,並且可以找到捕獲組的開始/結束索引。 < /p>
提前致謝!
發現: 如何存取JavaScript 正規表示式? 看起來(至少最初)使用
exec()
會做我想要的事情。