2015-10-07 35 views
1

我想提取第三次出現'|'之間的子字符串,字符和'; GTSet'串內的字符串javascript查找字符串中的子字符串的第三次發生

例如,如果我的字符串是「AP0 |#c7477474-376c-abab-2990-918aac222213; L0 |#0a4a23b12-125a-2ac2-3939-333aav111111 | ABC xxx; pATeND |#222222ANCJ-VCVC-2262-737373-3838383" ;

我想使用javascript從上面的字符串中提取「ABC xxx」。 我曾嘗試以下選項

var str = "AP0|#c7477474-376c-abab-2990-918aac222213;L0|#0a4a23b12-125a-2ac2-3939-333aav111111|ABC xxx;pATeND|#222222ANCJ-VCVC-2262-737373-3838383"; 
 
     alert(str.match(/^|\;pATeND(.*)$/gm)); 
 
      //var n = str.search(";pATeND"); 
 
     //to get the 3rd occurance of | character 
 
     //var m = str.search("s/\(.\{-}\z|\)\{3}");

回答

1

這種超前的正則表達式應該工作:

/[^|;]+(?=;pATeND)/ 

RegEx Demo

或者,如果paTeND文本是知道知道再搶3次後的值|

^(?:[^|]*\|){3}([^|;]+) 

並使用捕獲的組#1。

Demo 2

相關問題