2011-07-05 6 views
0

Je veux trouver tous les textes entourés par "#" char, et à l'intérieur < script> tags. Comment vous y prendrez-vous? Par exemple, dans:Regex: recherche de texte sourd par des caractères spécifiques, puis par des balises spécifiques

awoie awiefaow <script type="javascript"> #bla#ff awa </script> fawe aaa#bla1# <script>awa #bla2# aa</script>ff 

le regex devrait trouver que # # et # bla BLA2 #.

Je suis venu avec somehting comme:

(?i)(?s)((?<=&lt;script.&#42;?>.&#42;?)#.&#42;?#(?=.&#42;?&lt;/script.&#42;?>)) 

mais redonnerait aussi # BLA1- #.

Quel serait un bon moyen d'aborder ce problème? ou y a-t-il quelque chose de plus flexible pour la recherche de texte avancée dans plusieurs fichiers?

Répondre

0

Cet exemple C# utilise des retours de recherche.

string input [email protected]"awoie awiefaow <script type=""javascript""> #bla#ff awa </script> fawe aaa#bla1# <script>awa #bla2# aa #bla3# aa</script>ff"; 
string pattern = @"(?<=<script[^>]*>(?:(?!</script>)(?:[^#]|#(?:(?!</script>)[^#])*#))*#)([^#]*)"; 
MatchCollection matches = Regex.Matches (input, pattern, RegexOptions.IgnoreCase); 

Rendement:

Match[0] => bla 
Match[1] => bla2 
Match[2] => bla3 
+0

merci beaucoup, fonctionne :) – blaat

Questions connexes