[英]regex to match markdown code block
我有以下字符串:
`example.com` foo bar `baz`
需要替換為:
<code>example.com</code> foo bar <code>baz</code>
到目前為止我正在使用以下正則表達式:
var str = '`example.com` foo bar `baz`'
str.replace(/`(?:(.*$)\n)?([\s\S]*)`/gm, '<code>' + '$2' + '</code>')
結果是:
"<code>example.com` foo bar `baz</code>"
預期結果:
"<code>example.com</code> foo bar <code>baz</code>"
您可以使用:
var s = '`example.com` foo bar `baz`';
var r = s.replace(/`([^`]+)`/g, '<code>$1</code>');
//=> <code>example.com</code> foo bar <code>baz</code>
如上所述,如果不嘗試實現轉義字符等,則只能使用正則表達式。
這是一個示例代碼:
var s = '`example.com` foo bar `baz`'; var r = s.replace(/`(.*?)`/g, '<code>$1</code>'); window.alert("input: "+s+"\\nresult: "+r);
請注意: .*?
matcher將嘗試盡可能少地找到字符。 它被稱為非貪婪 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.