2017-03-03 46 views
0
var str = "in this sentence, I WANT TO GET ONLY THIS PART - not the other parts" 

假設我想這是部分與,開始,以-正則表達式VS分裂削減琴絃在JavaScript

結束,我總是以削減或獲取子句使用split。因爲我不知道如何寫regex

對於本例我寫爲;

str.split(",")[1].split("-")[0] 
" I WANT TO GET ONLY THIS PART " 

使用split有效嗎?或者我該如何編寫一個正則表達式,它將採用相同的部分。我應該選擇哪一個? regexsplit?你有什麼建議?爲什麼?

編輯:謝謝你給我確切的正則表達式,但我也想知道哪種方式更好?使用拆分也是一個解決方案?或者我應該學習如何編寫正則表達式?

+0

嗨,你只需要回答幾個qestions首先:** 1)**你的字符串是否保持不變? ** 2)**你總是必須分開AllCaps的字符串? –

+0

其實allCaps只是爲了強調我想要剪切的字符串。沒有必要。例如,我只想獲取「,」和「 - 」之間的字符串。 – mmu36478

+1

你可以使用'.split()'*和*正則表達式:'str.split(/ [, - ] /)[1]'。或'str.split(/(?:,*)|(?: * - )/)[1]'來避免前導和尾隨空格。 (我不是說你*應該*,但你*可以* ...) – nnnnnn

回答

3

您可以使用下面的正則表達式

,\s?(.*?)\s?- 

的JavaScript

var str = "in this sentence, I WANT TO GET ONLY THIS PART - not the other parts"; 
 
var result = str.match(/,\s?(.*?)\s?-/); 
 
console.log(result[1]);

+0

結果將會是' RESULT ' –

+1

@GeomanYabes修正了它:) OP的結果包含空格tho。 :) – m87

+0

+1修復..但是,這將失敗當所需的結果包含','或'-'可能獲得第一個索引,然後最後索引的'-'? :d –