簡體   English   中英

正則表達式捕獲:將整個匹配項包含在捕獲組中

[英]Regex capturing : get the whole match in a capturing group

我無法像我想要的那樣進行捕獲:

我的目標是用字符串捕獲第一個捕獲組的長度:

var regex = /(_)?;([\w]+);([\w]+);/;
var string = "____;foo;bar;";
var matches = regex.exec(string);

console.log(matches); // outputs  ["_;foo;bar;", "_", "foo", "bar"]

如您所見, matches[1]包含捕捉對象的下划線,但給我匹配的字符,而不是所有下划線。 我期望的結果是:

["_;foo;bar;", "_____", "foo", "bar"]

有沒有辦法用正則表達式來實現呢? 我寧願避免使用;分割字符串; ...

您可以使用以下模式:

/(_*);(\w+);(\w+);/

這會給你:

["_____;foo;bar;", "_____", "foo", "bar"]

此模式將匹配以下順序:

  • 零個或多個下划線,在組1中捕獲
  • 分號
  • 第2組中捕獲的一個或多個文字字符
  • 分號
  • 第3組中捕獲的一個或多個文字字符
  • 分號

暫無
暫無

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

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