Ich bin auf der Suche nach einem Weg für regexp nur ignorieren übereinstimmen, wenn das Wort nicht umgeben ist {c} {text/c} Block und einen Weg gefunden,Regexp, die Wörter innerhalb eines Blocks
/(?![^{]*.*})(.+?)(?![^{]*.*})/g
aber es ignoriert alles um zwei herumliegende {} ({} text {} wird ignoriert) was nicht das ist was ich will. Die Regexp ist für meine Chat-App, die in Knoten js geschrieben wird. Der Punkt ist, dass ich andere regexp will nichts in Seiten {c} analysieren {/ c} Block, auch die anderen {c} {/ c} Block, so etwas wie
{c} {c} text {/c} this is how you show codes {/c}
wird
<pre> {c} text {/c} this is how you show codes </pre>
EDIT: Das ist, was ich jetzt benutze.
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 />",
];
Regexp ist nicht gut geeignet für diese Art von verschachteltem Konstrukt Handhabung. –
Können Sie mir andere mögliche Lösungen sagen? Regexp ist das einzige, was ich kenne, wenn ich diese Art von Arbeit mache. – Yanaro
können wir mit reinem Javascript auch tun –