aide sur un regex. [C#] - C#/.NET managed - Programmation
Marsh Posté le 14-04-2009 à 01:57:28
Simple problème d'échappement de caractères. Tu as bien échappé les guillemets mais pas le "." ni le "?"
Quand tu as un doute sur un caractère, pour être tranquille, pense toujours à l'échapper.
Code :
|
Marsh Posté le 14-04-2009 à 09:47:36
merci de ta réponse, j'ai cru comprendre les caractères d'échappement donc j'ai essayé et ca ne marche pas, j'ai copier le code que tu m'indique et ca ne marche pas non plus,
le code apparait surligné en rouge et me retourne une erreur sur la séquence d'échappement.
Marsh Posté le 14-04-2009 à 09:48:41
Le HTML c'est comme le XML, ça se parse pas avec des regex
Sinon, image_id=(\d+)
Marsh Posté le 14-04-2009 à 11:44:43
@ flclsd : C'est quoi comme erreur ?
@Masklinn : oui en effet \d+ fait plus "propre", cependant .* devrait avoir le même effet, même s'il accepte plus de possibilités.
Marsh Posté le 14-04-2009 à 11:48:38
Kormyr a écrit : @ flclsd : C'est quoi comme erreur ? |
Sauf que ? sinon il te bouffe tout
Marsh Posté le 14-04-2009 à 12:03:16
Kormyr a écrit : cependant .* devrait avoir le même effet, même s'il accepte plus de possibilités. |
Ben non, \d+ s'arrête quand il n'a plus de chiffres à consommer (donc juste avant le "&" ), alors que ".*" va jusqu'au bout de la page
Marsh Posté le 14-04-2009 à 12:12:26
Code :
|
Il faut 2 "\", sinon en effet le & est facultatif avec \d
Marsh Posté le 14-04-2009 à 18:41:14
ok, je teste ca se soir, je suis au taff la ..
Code :
|
l'autre regex que j'ai a faire est pour récuperer ce qui suit media/ dans le code ci dessus, est ce qu'on est d'accord que cette regex devrait fonctionner.
Code :
|
Marsh Posté le 14-04-2009 à 18:45:03
Non mais stop, arrêtes d'utiliser des regex pour ça
Marsh Posté le 14-04-2009 à 18:51:13
lol, je débute et il y a que ca que j'arrive à peu près a comprendre.. :-)
j'ai que ces 2 lignes à récuperer, c tout..
tu me suggére d'utiliser quoi ?
Marsh Posté le 14-04-2009 à 19:06:48
flclsd a écrit : lol, je débute et il y a que ca que j'arrive à peu près a comprendre.. :-) tu me suggére d'utiliser quoi ? |
Une lib qui sait parser du HTML (il y a ptet même ça directement dans le framework)
edit: http://htmlagilitypack.codeplex.com/ par exemple, qui permet de faire des queries XPath.
Marsh Posté le 14-04-2009 à 19:34:07
Si quelqu'un connais un équivalent intégré au framework ça m'intéresse, ça serait quand même bizarre que personne n'y ait pensé.
Sinon pour apprendre les regexp les pages HTML c'est pas mal ^^
Marsh Posté le 14-04-2009 à 21:52:49
bon je continue dans ma galére.. c baléze quand meme les regex
pour ce code html la
Code :
|
ca fonctionne bien, mais je récupere toute la fin de la chaine
Code :
|
qui ne m'interresse pas et j'arrive pas à m'arreter juste avant le " cad juste
Code :
|
j'ai essaye entre autre ca :
Code :
|
mais comme vous le devinez ca marche pas !!
Marsh Posté le 14-04-2009 à 22:04:24
flclsd a écrit : bon je continue dans ma galére.. c baléze quand meme les regex |
C'est surtout complètement con de les utiliser pour parser du HTML, mais bon apparement tu t'en fous.
Marsh Posté le 14-04-2009 à 22:05:57
c'est pas que je m'en fous, mais je regarderais une autre solution quand j'aurais bcq plus de code a parser.. pour 2 lignes les regex ca le fait ! et c rapide donc..
Marsh Posté le 14-04-2009 à 22:12:14
J'en ai essayé 2 qui marchent :
Code :
|
Code :
|
La 2e est mieux si tu est sûr d'avoir des jpg
Marsh Posté le 15-04-2009 à 20:58:01
merci bcq monsieur !! va falloir que je travaille mes regex !-)
Marsh Posté le 26-04-2009 à 11:55:08
En admettant que tu conserves le parse par regex (ce que moi aussi je trouve très maladroit dans ton cas, tu ferais mieux d'interpréter tes fichiers comme étant du XML avec XPath ou LINQ to xml, ou même d'utiliser une lib dédiée au HTML), tu devrais préfixer toutes tes regex par "@", ce qui a pour effet de désactiver dans la chaîne les séquences d'échappement au niveau du compilo, ce qui t'épargnerait de devoir échapper (compilo) des séquences d'échappement (regex) , comme tu le fais avec "\\.".
Marsh Posté le 30-04-2009 à 13:46:39
le code de Kormyr fonctionne très bien par contre je viens de rencontrer un problème si l'image commence par un chiffre :
rappel du regex utilisé :
Code :
|
lecture de code fontionne très bien :
Code :
|
mais celui ci ne marche pas, la seule différence dans ce cas est le 2, j'ai essayé plusieurs ca si ca commence par un chiffre ca ne marche pas .. bizzare quand meme..
Code :
|
@ TotalRecall, je vais utiliser le @ merci de l'astuce.
Marsh Posté le 13-04-2009 à 20:26:08
Bonjour à tous, je débute avec les regex et je galére grave.. voici qq exemple
un qui marche
dans mon code html voici le code original
voici le code de mon regex qui fonctionne très bien
voici le code html original que je veux trouver
je veux récupérer 1363, voici un de mes codes regex qui ne marche pas !
j'en ai essayer plein mais je n'y arrive pas merci de votre aide, l'id est toujours composé de chiffres.
Message édité par flclsd le 13-04-2009 à 20:26:36