快速的問題:我的模式是一個SVG字符串,它看起來像l 5 0 l 0 10 l -5 0 l 0 -10
要做到對一個參考,我需要拋棄所有,但第一l
我知道我的一些單元測試對比可以將它們全部棄置並預先放置'l',或者我可以使用子字符串。但我想知道是否有這樣的JavaScript正則表達式成語?如何更換所有,但在字符串的模式的第一次出現
回答
像這樣的事情?
"l 5 0 l 0 10 l -5 0 l 0 -10".replace(/[^^]l/g, '')
雖然這在這種情況下起作用,但是'^'不代表字符類中的文字字符嗎? – pimvdb
'[^^]'匹配除'^'之外的任何字符。 (!/ [^^] /。test('^')&& /[^^]/.test('x'))=== true' –
有沒有JS正則表達式來代替一切,但最的第一圖案匹配。但是,您可以通過將函數作爲第二個參數傳遞給replace
方法來實現此行爲。
var regexp = /(foo bar)(red)/g; //Example
var string = "somethingfoo bar red foo bar red red pink foo bar red red";
var first = true;
//The arguments of the function are similar to $0 $1 $2 $3 etc
var fn_replaceBy = function(match, group1, group2){ //group in accordance with RE
if (first) {
first = false;
return match;
}
// Else, deal with RegExp, for example:
return group1 + group2.toUpperCase();
}
string = string.replace(regexp, fn_replaceBy);
//equals string = "something foo bar red foo bar RED red pink foo bar RED red"
函數(fn_replaceBy
)針對每個匹配執行。在第一次匹配時,函數立即返回匹配的字符串(沒有任何反應),並設置一個標誌。
每個其他比賽將根據功能中描述的邏輯進行替換:通常,您使用$0 $1 $2
等等來回引用組。在fn_replaceBy
中,函數參數等於這些:第一個參數= $0
,第二個參數= $1
等等。
匹配的子字符串將被函數fn_replaceBy
的返回值替換。使用函數作爲replace
的第二個參數允許非常強大的應用,例如intelligent HTML parser。
參見:MDN: String.replace > Specifying a function as a parameter
我不相信「智能HTML解析器」不會鏈接到「使用正則表達式解析HTML」的答案,哈哈。但非常好的答案,這正是我所需要的。 – henrebotha
"l 5 0 l 0 10 l -5 0 l 0 -10".replace(/^\s+/, '').replace(/\s+l/g, '')
確保第一'l'
不是由前面的空間,並刪除任何空格,然後由'l'
。
- 1. ,刪除所有,但一個字符串的第一個出現次數在XML
- 2. 第一次替換字符串中出現的字符串VB.NET
- 3. 如何更改字符串中第一次出現的單詞
- 4. Bash:從第一次出現的字符到第二次出現的字符串
- 5. 正則表達式 - 第一次出現在所有組的字符串中
- 6. PHP:更換所有出現的 「[CODE] ... [/ CODE]」 在一個字符串
- 7. 更換一個詞出現的所有字符串在python
- 8. PHP替換字符串的第一次出現,從第0位
- 9. 如何在第一次出現字符後分割字符串?
- 10. 正則表達式 - 匹配的字符串中第一次出現的所有行,直到下一次出現
- 11. Java僅替換字符串中第一次出現的子串
- 12. 替換字符串中所有出現的模式
- 13. 如何在第一次出現字符串時多次使用
- 14. 如何計算第一次字符串出現的次數字符串還有第二次字符串出現的次數?
- 15. 只替換一個字符串的第一次出現?
- 16. 在javascript問題更換所有出現在一個字符串
- 17. 如何在python字符串中找到第一次出現的子字符串?
- 18. 替換串的所有一次出現從一個字符串中的java
- 19. 替換所有出現的字符串
- 20. 替換所有的字符串出現
- 21. 第一次出現分割字符串
- 22. 將所有內容替換爲第一個字符串出現
- 23. 如何更改字符串每第n次出現在php
- 24. 替換Python中第一次出現的字符串
- 25. 替換文件中字符串的第一次出現
- 26. 如何在.NET中替換第一次出現的子字符串?
- 27. Python字符串替換()方法只替換第一次出現
- 28. 如何只替換CString中第一次出現的字符?
- 29. 如何在第n次出現字符後拆分字符串?
- 30. 如何找到字符串中第一次出現的字符串
第一個l總是在字符串的開頭嗎? –
我知道你說你不想要這個,但是到第一個空間的子串似乎是最容易閱讀和維護的。 – Randy
@標記爲這個用例,它甚至是'l',但是這也適用於負向預測。 –