2014-07-01 159 views
2

我的正則表達式搜索遇到了一些麻煩。我一直在尋找解決方案,而現在我似乎找不到解決問題的辦法。匹配所有不包裹的正則表達式字符串

我有以下字符串:

1+[2/3]-23+2+<3,4,[22/7]+2;2,3,4>+2 

我想匹配的一切不裹在[]或<>。所以在這個字符串我會得到以下匹配:

1+ 
-23+2+ 
+2 

我嘗試了很多不同的東西。我想的最後一件事是

/[\]>]?.*[\[<]?/ 

回答

2

在這種情況下,分割比匹配

使用此正則表達式來分割字符串更容易:

\[[^\]]*\]|<[^>]*> 

你會得到完全數組你想。

在JavaScript:

result = str.split(/\[[^\]]*\]|<[^>]*>/); 

說明

  • 所有匹配和拆分是同一枚硬幣的兩面。通過拆分,你可以刪除你不想要的東西,而你只剩下你想要的東西。
  • \[[^\]]*\]完整匹配[braces]:一個開放的大括號,然後[^\]]*任何數量的不是大括號的字符,然後是一個右大括號。
  • OR |
  • 同樣,<[^>]*>比賽完全<tags>
+0

我忘了補充,i'm在Javascript中這樣做。這將工作在JavaScript?因爲我之前沒有看到這些跡象 – VictorVH

+1

是的,它會在JS中工作。爲此添加了JS代碼。 :)現在寫解釋。 – zx81

+0

謝謝,我可以看到這個作品 – VictorVH

相關問題