2011-05-21 45 views
1

我正在嘗試使用正則表達式搜索2個整個單詞之間的內容。例如:正則表達式 - 全局搜索2個整詞之間

所有的女孩去 鎮的商場。

在上面的字符串我想找到這個詞allto之間的內容:

(?<=all).*?(?=to)/g 

但是,它的發現兩場比賽,因爲表達不指示全字之間搜索:

" the girls went " //between all and to 
" in " //between m(all) and (to)wn 

我曾想過要加空格的表達式,像這樣:

(?<= all).*?(?= to)/g 

但這不會在上面的字符串中工作,因爲all是句子的第一個單詞。

我該如何編寫表達式,以便它能夠在2個整個單詞之間找到所有適當的內容,而不會出現如示例中所示的部分單詞匹配?

回答

2

添加字邊界

(?<=\ball\b).*?(?=\bto\b) 

\ b是沒有寬度的字邊界。它匹配一個單詞的開始或結尾(當然,正則表達式定義)

+0

「\ b」匹配單詞字符(0-9,AZ,az和下劃線)和任何非單詞字符「 – 2011-05-21 02:47:48

+0

優秀!謝謝Sylverdrag! – TheDarkIn1978 2011-05-21 02:51:21

+0

還有一個問題:假設我想要返回的內容包含除空格之外的所有內容,因此,而不是「女孩去」我會得到「thegirlswent」。除了空格之外,我如何匹配所有(。*?)? – TheDarkIn1978 2011-05-21 05:04:00

相關問題