我試圖匹配未由字符串中的點分隔的單詞。
因爲在JavaScript中沒有後向關係,所以我一直在努力解決這個問題,並且無法讓它工作。Javascript正則表達式匹配由空格分隔但不包含點的字符串
的TestString 1:'one two three.four five six.seven eight'
應該匹配:'one', 'two', 'five', 'eight'
的TestString 2:'one.two three four.five six seven.eight'
應該匹配:'three', 'six'
更新:
的TestString 3:'one.two three four five six seven.eight'
應該匹配:'three', 'four', 'five', 'six'
到目前爲止,我有(|^)(\w+)(|$)
,這有點適用於測試字符串2,但不能匹配'two'
。
有沒有什麼辦法可以用正則表達式來做這件事,還是應該把它拆分成一個數組然後走?
這是完美的!謝謝!這個?=做什麼? – 2014-08-28 10:54:17
和你的替代解決方案,而優雅只適用於IE9 +。 爲了安全起見,它會變得更加冗長,這就是爲什麼我更喜歡正則表達式。 – 2014-08-28 11:00:30
[(?=)']的文檔(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)_x(?= y)僅當x是接着是y_。如果你使用[polyfill](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Polyfill),'.map'也可以在IE8中工作。 – Volune 2014-08-28 11:27:32