2016-01-27 138 views
-1

我需要一个正则表达式是特定的单词后提取模式(她喜欢限制::正则表达式为字符串匹配后重复模式

我必须的TestString,所以我们说的文本始终是分隔符之间的界限! :****! :

* ksjfl KFJ sdfasdfaf dfasf ASD SDF一dfasd FDAF指令AD F afdfaf DFAD喇嘛喇嘛ksfajs ldsfskj限制:: WLo1/WHi1/WHi1/WHi1WLo2/! WHi2/WHI/WHi2,.hier重复图案..,WLON/WHin/CLon/CHin! fasdfakl skdfkas sflas FASF自卫队afasf

我只是想唯一的一句话:

  1. WLo1
  2. WHi1
  3. WHi1
  4. WHi1
  5. WLo2
  6. WHi2
  7. WHI
  8. WHi2
  9. WLON
  10. WHin
  11. 酷龙
  12. 下巴

我已经测试样(?!\ w + ::(?:(\ w +)/(\ w +)/(\ w + )/(\ w +)))|(?:,(\ w +)/(\ w +)/(\ w +)/(\ w +))+。*!,不及

+0

唯一的正则表达式,LIK Java脚本 – schweinsteiger

+0

通过捕捉分隔符之间有什么'开始!极限::([\ S \ S] +?)!'。从那个捕捉中,找出你需要得到的单词。 – sln

+0

我已经尝试过这种模式,但不幸的是没有工作 – schweinsteiger

回答

0

我不知道结尾分隔符是,所以如果它很重要,更新你的问题,我会修改这个表达式:

/(?<=Limits::)(?:(.+?)\/)+/i 

搜索Limits::,然后重复以/结尾的字符串,您的单词将在第1组中。

+0

not working,die expression? – schweinsteiger

1

正则表达式:

/(W.*|C.*)(?=\/|!|,)/g:与WC开始比赛的话,随后/!,或,

/\/|,.*(?=,)|,/:删除/,或任何字符,随后,,从字符串从返回第一个RegExp

var str = "*ksjfl kfj sdfasdfaf dfasf asd sdf a dfasd fdaf ad f afdfaf dfad bla bla ksfajs ldsfskj !Limits::WLo1/WHi1/WHi1/WHi1,WLo2/WHi2/WHi/WHi2,.hier repeated pattern..,WLon/WHin/CLon/CHin! fasdfakl skdfkas sflas fasf sdf afasf"; 
 

 
var res = str.match(/(W.*|C.*)(?=\/|!|,)/g)[0].split(/\/|,.*(?=,)|,/); 
 

 
document.body.textContent = res.join(" ")

+0

谢谢,但我只想要正则表达式,而不是函数分割... – schweinsteiger

+0

'.split()'接受正则表达式作为参数,如stacksnippets所示 – guest271314

+0

只是正则表达式 – schweinsteiger