簡體   English   中英

正則表達式匹配markdown代碼塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM