2010-11-09 59 views
1

我想一個字符串分割成基於正則表達式(\ $ \ d + \ $)的部分分裂,但我也想知道這些分割點的值。因此,舉例來說,如果有字符串:用正則表達式分割值結果

<option value="beholder" selected="selected">$33685$</option> 
<option value="gnuchess_fancy">$33687$</option> 
<option value="gnuchess_simple">$33689$</option> 
| $29000$ 
<option value="beholder">$33671$</option> 
<option value="gnuchess_fancy">$33673$</option> 

我想分割它使得結果單獨的部件會:

o <option value="beholder" selected="selected"> 
o $33685$ 
o </option><option value="gnuchess_fancy"> 
o $33687$ 
o ...... 

分裂與正則表達式\ $ \ d + \ $只給出了我上述列表中的第一項和第三項,而我想要所有項目。

編程語言並ofcourse沒有關係,這是關於正則表達式和如何拆分(或比賽)。

我也試圖以配合以下regexs,但沒有運氣

\$\d+\$|.*? 
.*?|\$\d+\$ 
.*?\$\d+\$.*? 
(.*?|\$\d+\$)* 

任何幫助是極大的讚賞。

+1

*編程語言並ofcourse沒有關係* - 這很重要。每種語言的語法都不相同。你在用什麼語言?或者你想讓人們推薦一種語言? – 2010-11-09 10:42:56

+0

別人之前將它寫入,讀這樣的回答:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-11-09 10:45:58

+0

@馬克,我的壞在那種情況下,我將它與.NET結合使用。 – Henri 2010-11-09 11:01:08

回答

1

嘗試分割帶括號:

(\$\d+\$) 

在某些語言中,所捕獲的組被添加到結果數組。

+0

太好了,正是我需要的:)非常感謝! – Henri 2010-11-09 10:58:10

+0

謝謝!已經在.net上檢查了你的標籤,它應該按原樣工作。在PHP上,你應該添加'PREG_SPLIT_DELIM_CAPTURE'標誌。 – Kobi 2010-11-09 11:00:14