2017-10-16 5 views
0

In einem String wieregex interprete Abschlag aber ignoriere HTML

Hallo, this is <code>`code`</code> and this `is code again`. 

es zu analysieren, analysiert es mit Regex?

In diesem Beispiel tippte der Benutzer soeben ganz rechts ein. Der erste "Code" ist offensichtlich schon von HTML umgeben.

Ich brauche eine Regex, um den nächsten Code angezeigten Teil zu bekommen.

Es gibt immer eine Serie, das ist ein gültiger Markdown UND nicht bereits von den entsprechenden HTML-Tags umgeben.

Wie erhalten Sie diese spezifische Serie (unabhängig davon, ob es *, **, ___, `oder was auch immer)?

Antwort

0

Wenn Sie alle betonten Zeichenfolge übereinstimmen soll, die nicht mit „Code“ markiert ist, können Sie

(?<!<code>)`[\w ]+` 

verwenden Sie können es testen auf regex101.com

1

Also, was wollen Sie ist ein regulärer Ausdruck, der nur Spiele der Abschlag, der nicht von HTML-Tags umgeben ist, richtig?

Sie können so etwas wie folgt verwenden:

/(?:[^<>]|^)(`[^<>].*?`)/ 

Dies wird nur den Text passen innen `` gesetzt, die nicht direkt neben einem < oder> Zeichen gesetzt werden. Auf diese Weise stimmt der `code` nicht überein, unabhängig davon, was das HTML-Tag innerhalb der < ...> ist.

Sehen Sie diese Regex101.com

+0

dies nicht funktioniert, wenn die Zeichenfolge mit einem Einzel Anführungszeichen beginnt und fügt eine Leer zu jedem Stück Code –

+0

Was tun Sie genau das? Dass es dazu passt: "'code'"? Wenn ja, hast du recht. Die Regex, die du zur Verfügung gestellt hast, macht dasselbe. –

+0

Nein, ich meine, wenn das Ganze mit einem "'" beginnt. Siehe: https://regex101.com/r/mhfUFQ/2. Und deine Regex passt zu dem Charakter vor dem "'" zu –

Verwandte Themen