Je regex qui se lit comme suit:S'il vous plaît expliquer regex
@"<img\s*[^>]*>(?:\s*?</img>)?
Quelqu'un peut-il expliquer s'il vous plaît cette partie: (: \ s *?)?
Qu'est-ce que c'est?
Je regex qui se lit comme suit:S'il vous plaît expliquer regex
@"<img\s*[^>]*>(?:\s*?</img>)?
Quelqu'un peut-il expliquer s'il vous plaît cette partie: (: \ s *?)?
Qu'est-ce que c'est?
match, mais ne capture pas un nombre d'espaces suivi d'une balise d'image proche, zéro ou une fois:
(?: = match but don't capture
\s*? = any number of whitespace (not greedy)
</img> = close image tag
)? = zero or one times
:)
(?:\s*?)
choisit une des espaces, si elle existe, après la tag d'image. Le ?:
au début indique au moteur de regex de ne pas capturer ce groupe (ce qui signifie qu'il ne sera pas retourné dans les matches tableau)
groupe non-capture d'un nombre quelconque de caractères blancs, suivi d'une balise img fermeture
L'expression entière capturera toutes les balises <img>
qui ont les balises </img>
correspondantes (mais ne captureront pas les balises de fermeture). Il ne capture pas les balises de fermeture, car la syntaxe (?:)
signifie "faire correspondre mais ne pas capturer".
Certaines restrictions qui font partie de cette regex:
\s*
dans la balise d'ouverture est redondant, car [^>]*
capturera cela aussiQuelques exemples:
<img>
sera pas match de<img></img>
correspondra, mais seulement capturer <img>
<img attr="123"></img>
correspondra, mais seulement capturer <img attr="123">
<imgabc></img>
sera pas match de<img> </img>
correspondra, mais seulement capturer <img>
<img>ab</img>
va pas matchJe recommande fortement l'expression régulière Designer disponible gratuitement à www.radsoftware.com.au pour les tests regexs
incorrect - le? après que le groupe final ne soit pas gourmand, des choses comme vont correspondre –
avez-vous essayé de télécharger l'un des outils gratuits (comme 3.0 Expresso) qui explique regex? –
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Amarghosh