2017-10-16 7 views
0

Dans une chaîne commeregex interprete démarquage mais ignorer HTML

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

Pour analyser, analyser avec regex?

Dans cet exemple, l'utilisateur tapés l'extrême droite `au dernier. Le premier "code" a évidemment déjà été entouré de HTML.

je besoin d'un regex pour obtenir le code suivant indiqué partie.

Il toujours une série, qui est démarquage valide et non déjà entouré par les balises HTML correspondantes.

Comment obtenir cette série spécifique (peu importe si elle est *, **, ___, `ou autre)?

Répondre

0

Si vous voulez faire correspondre chaque chaîne a souligné que non tagguées avec « code » vous pouvez utiliser

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

Vous pouvez le tester sur regex101.com

1

donc ce que vous voulez est une expression rationnelle qui correspond seulement la démarque qui n'est pas entourée de balises HTML n'est-ce pas?

Vous pouvez utiliser quelque chose comme ceci:

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

Cela ne correspond au texte placé à l'intérieur `` qui ne sont pas placés directement à côté d'un < ou> caractère. De cette façon, quel que soit le tag HTML à l'intérieur du < ...>, le `code` ne correspondra pas.

Voir cette Regex101.com

+0

Cela ne fonctionne pas, si la chaîne commence par un guillemet simple et ajoute un à chaque morceau Whitespace code –

+0

Que voulez-vous dire exactement? Cela correspond-il à ceci: "'code'"? Si oui, vous avez raison. L'expression régulière que vous avez fournie est la même. –

+0

Non, je veux dire si le tout commence par un "" Voir: https://regex101.com/r/mhfUFQ/2. Et votre regex correspond au personnage avant le "'" aussi –