[英]Regex for replacing character within quotes
我有兩個測試字符串:
1+":"+2:xyz
1+"a:fb"+2:xyz
我正在嘗試替換引號之間的:。
我嘗試了這個:
(".*):(.*")
替換為:
$1Q$2
但我最終得到了這個:
1+"Q"+2:xyz
1+"Q"+2:xyz
但我最后要這樣:
1+"Q"+2:xyz
1+"aQfb"+2:xyz
有人可以幫我嗎。 必須使用Javascript。
編輯:
我已將測試工具切換為可以正常工作的工具(即直接在瀏覽器中的javascript中進行測試)。
現在可以使用:
var str = '1+"a:fb"+2:xyz';
var res = str.replace(/(".*):(.*")/g, "$1Q$2");
但是如果我在兩個引號中有兩個:,該怎么辦:
1+"a:fb"+2+":"
我現在得到以下結果:
1+"a:fb"+2+"Q":xyz
實際上,您正在嘗試替換一個由三部分組成的模式:
"
開頭,並且既不包含"
也不包含:
:
"
也不:
並以"
結尾的位 因此表達式如下所示:
("[^:"]*):([^:"]*")
代替$1Q$2
這導致
1+"Q"+2:xyz
1+"aQfb"+2:xyz
您的工作不正常的原因在於貪婪的匹配 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.