我正在尋找一種方式,正則表達式內忽略的話只匹配,如果這個詞是不是{C} {文/ C}塊包圍,並發現了一種正則表達式,一個塊
/(?![^{]*.*})(.+?)(?![^{]*.*})/g
但它會忽略任何由{} {{} text {}所包圍的內容}這不是我想要的。 正則表達式是我的聊天應用程序寫在節點js。 的一點是,我希望其他的正則表達式不解析在側{C}任何{/ C}塊,甚至其他{C} {/ C}塊,像
{c} {c} text {/c} this is how you show codes {/c}
變
<pre> {c} text {/c} this is how you show codes </pre>
編輯:這就是我使用的是現在。
var from = [
/(?![^{]*.*})`(.+?)`(?![^{]*.*})/g, /*bold `text`*/
/(?![^{]*.*})''(.+?)''(?![^{]*.*})/g, /*italics ''text''*/
/(?![^{]*.*})~~(.+?)~~(?![^{]*.*})/g, /*strikethrough ~text~*/
/(?![^{]*.*})@@(.+?)@@(?![^{]*.*})/g, /*code @@[email protected]@*/
/{q}\s*(.+?)\s*{\/q}/g, /*quote {q}text{/q}*/
/{c}\s*(.+?)\s*{\/c}/g, /*preview {c}text{/c}*/
];
var to = [
"<strong>$1</strong>",
"<em>$1</em>",
"<span style='text-decoration:line-through'>$1</span>",
"<code>$1</code>",
"<blockquote>$1</blockquote><br />",
"<pre class=\"code\">$1</pre><br />",
];
正則表達式是不很適合於處理這樣的嵌套構建體。 – 2016-11-24 05:02:36
你能告訴我其他可能的解決方案嗎? Regexp是我做這類工作時唯一知道的事情。 – Yanaro
我們也可以用純javascript來做 –