我正在嘗試匹配被反引號包圍但沒有被三重反引號包圍的字串。
例如:
匹配:`我應該匹配`
不應該匹配:``` `Hello world` ```
這是我到目前為止嘗試過的:https : //regex101.com/r/P4MhiM/1
uj5u.com熱心網友回復:
匹配并捕獲匹配的一部分,然后在替換中使用自定義邏輯:
const text = "\n``` `Hello world` ```\n\n\n`Matched!`\n";
const rx = /```.*?```|`([^`\n] )`/g;
console.log(
text.replace(rx, (x, y) => y ? `<code>${y}</code>` : x)
)
請參閱正則運算式演示。詳情:
```.*?```- 三重反引號之間的字串(反引號之間沒有換行符)|- 或者`([^`\n] )`- 沒有換行符的反引號之間的字串。
uj5u.com熱心網友回復:
我通過了這個測驗用例
首先捕獲單引號中的所有匹配項
\`(?:. )\`
第二個過濾器只匹配字符而不是反引號或空格
\`(?:[^\`||\s] )\`
https://regex101.com/r/oVE7zi/1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/336636.html
標籤:javascript 正则表达式
上一篇:從字串中提取字母(和特定數字)
下一篇:替換可變數量的組
