2 votes

J'ai besoin d'aide pour modifier une expression régulière pour PHP markdown

Je modifie PHP Markdown (un analyseur PHP du langage de balisage utilisé ici sur Stack Overflow) en essayant de mettre en œuvre les points 1, 2 et 3 décrits par Jeff dans cet article de blog. J'ai facilement fait les deux derniers, mais celui-ci s'avère très difficile :

  1. Supprimé le support pour l'empahase intra-mot comme_cet_exemple

En fait, dans l'implémentation "normale" de markdown comme_cet_exemple serait rendu comme like_thisexample. C'est très indésirable ; je veux seulement que _exemple\ devienne exemple.

J'ai regardé dans le code source et trouvé le regex utilisé pour l'empahse :

var $em_relist = array(
    ''  => '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(?

`

J'ai essayé de l'ouvrir dans Regex Buddy mais ce n'était pas suffisant, et après avoir passé une demi-heure à travailler dessus, je ne sais toujours pas par où commencer. Des suggestions ?

Certaines personnes, lorsqu'elles sont confrontées à un problème, pensent "Je sais, j'utiliserai des expressions régulières." Maintenant elles ont deux problèmes.

`

3voto

Box Points 1074

J'utilise aussi RegexBuddy. :)

Vous voudrez peut-être essayer le code suivant :

.*?)_\b/si';

if (preg_match($pattern, $line1, $matches))
{
  $result = $matches['word'];
  var_dump($result);
}

if (preg_match($pattern, $line2, $matches))
{
  $result = $matches['word'];
  var_dump($result);
}

?>

2voto

Jeffrey Blake Points 4995

J'ai pu saisir uniquement des mots encadrés individuels via :

$input = 'test of _this_ vs stuff_like_this...and here is _anothermatch_ and_another_fake_string';
$pattern = '#(?<=\s|^)(?

`

Je ne suis pas sûr de comment cela s'intègrerait dans le code ci-dessus cependant. Vous auriez probablement besoin d'associer cela avec les autres motifs ci-dessous pour tenir compte des situations de deux et trois correspondances :

$pattern = '#(?<=\s|^)(?

`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X