簡體   English   中英

如何使用正則表達式(RegEx)提取文本?

[英]How to extract text using Regular expression (RegEx)?

我需要一些關於 JavaScript 中的正則表達式的幫助。

我有以下字符串。

var str = "SOme TEXT #extract1$ Some more text #extract2$ much more text #extract3$ some junk";

我想將#$之間的所有文本提取到一個數組或 object 中。

最終 output 將是:

var result = [extract1,extract2,extract3]

extract1、extract2、extract3 可以包含任何字符,如_,@,&,*

正則表達式對你來說就像#(?<extract>[\s\S]*?)\$

命名組“提取”將包含您想要的值。

正如 Alex 所說,如果 javascript 不支持命名組,我們可以使用編號組。 所以修改后的正則表達式將是#([\s\S]*?)\$並且所需的值將在組號 1 中。

您可以使用 JavaScript 正則表達式的 exec 方法。

var regex = /\#([^\$]+)\$/g,
    match_arr,
    result = [],
    str = "some #extract1$ more #extract2$ text #extract3$ some junk";
while ((match_arr = regex.exec(str)) != null)
{
   result.push(match_arr[1]);
}
console.log(result);

參考: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec

var matches = str.match(/#(.+?)\$/gi);

js小提琴

暫無
暫無

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

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