HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Substitution de corde dans le Perl |
Avec l'identification le Perl régulier d'expressions peut faire des substitutions basées sur ces matchs.
|
Ceci est fait en utilisant la fonction de « s » qui a été conçue pour imiter la manière que la substitution est faite dans l'éditeur du texte vi. Ici encore l'opérateur de match est fait utilisé, et encore si elle est omise alors on assume que la substitution a lieu avec le $_ variable. Pour remplacer de Londres par Londres dans la corde $sntnce nous employons l'expression suivante
|
$sntnce =~ s/london/London/
and to do the same thing with the $_ variable just
s/london/London/
|
|
Noter que les les deux les expressions régulières (Londres et Londres) sont entourées par un total de trois estafilades. Le nombre de substitutions faites est le résultat de cette expression, ainsi l'un ou l'autre il est 0 (faux) ou 1 (vrai) dans ce cas-ci.
|
Options de Perl
|
L'exemple suivant remplace seulement la première occurrence de la corde, et il peut y avoir plus d'une telle corde que nous voulons remplacer. La dernière estafilade est suivie de « g » pour faire une substitution globale comme suit.
|
s/london/London/g
If we want to also replace occurrences of lOndon, lonDON, LoNDoN and so on then we could
use
s/[Ll][Oo][Nn][Dd][Oo][Nn]/London/g
but an easier way is to use the i option (for "ignore case"). The expression
s/london/London/gi
will make a global substitution ignoring case. The i option is also used in the
basic /.../ regular expression match.
|
|
Se rappeler des modèles
|
Il sera utile si nous nous rappelons les modèles qui ont été assortis de sorte qu'ils puissent être employés encore à l'avenir. Il se produit juste que quelque chose qui obtient assorti entre parenthèses est rappelé dans les variables $1,…, $9. En employant le spécial AU SUJET des codes \ 1,…, \ 9 ces cordes peut être également employé dans la même expression régulière (ou la substitution). nous laisser cosider par exemple :
|
$_ = "Lord Whopper of Fibbing";
s/([A-Z])/:\1:/g;
print "$_\n";
|
|
Elle remplacera chaque lettre majuscule par ces lettres entourées par des deux points. Elle imprimera : L : ord : W : distributeur de : F : ibbing. Toutes variables de $1,…, $9 sont des variables inaltérables ; donc vous ne pouvez pas les changer vous-même
|
Cosider l'exemple suivant.
|
if (/(\b.+\b) \1/)
{
print "Found $1 repeated\n";
}
|
|
Ceci identifiera les mots l'uns des qui sont répétés. Chacun \ b représente une frontière de mot et. + cordes non vides l'unes des de matchs, ainsi \ b.+ \ matchs quelque chose de b entre les frontières de deux mots. Ceci est alors rappelé par des parenthèses et pour par expressions stocké comme régulier \ 1 et pour le reste du programme en tant que $1.
|
La ligne suivante permutent les premiers et derniers caractères d'une ligne en $ variable _ :
|
|
Le commencement et la fin de la ligne sont assortis par le ^ et le $. Le premier caractère est dans stocké \ 1 code, tout autrement jusqu'au dernier caractère est stocké en code \ 2. ce qui est stocké dans le code \ 3. Alors la ligne entière est avec remplacé \ 3 et \ 1 permutée en rond.
|
Après qu'un match soit trouvé, vous pouvez employer le `de $ de variables et le $& et le $ ' qui est variable inaltérable spéciale pour découvrir avant ce qui a été assorti, pendant et après la recherche.
|
$_ = "Lord Whopper of Fibbing";
/pp/;
|
|
Tous les rapports suivants sont vrais. (Se rappeler que l'eq est un essai de corde-égalité.)
|
$` eq "Lord Wo";
$& eq "pp";
$' eq "er of Fibbing";
|
|
Au sujet de se rappeler des modèles il est également intéressant savoir cela à l'intérieur de des estafilades d'un match ou des variables d'une substitution sont interpolées.
|
$search = "the";
s/$search/xxx/g;
|
|
Cette ligne remplacera xxx avec chaque occurrence de « ». Si vous souhaitez remplacer chaque occurence de « là » puis vous ne pouvez pas faire cela qui emploie s/$searchre/xxx/, parce que ceci sera interpolé comme « $searchre » variable. Pour ceci vous devriez mettre les noms variables dans les croisillons bouclés de sorte que le code devienne :
|
$search = "the";
s/${search}re/xxx/;
|
|
Traduction dans le Perl
|
la traduction de Caractère-par-caractère est faite par la fonction de TR. Dans l'expression suivante chaque a est remplacé avec e, chaque b avec d, et c avec f dans le $sntnce variable. L'expression renvoie le nombre de substitutions faites.
|
|
Les la plupart du spécial AU SUJET des codes ne sont pas applicables dans la fonction de TR. Considérons par exemple, ici les comptes de rapport le nombre d'astérisques actuels dans le $sntnce variable et les magasins qui dans le $count variable.
|
$count = ($sntnce =~ tr/*/*/);
However, the "-" is still used to mean "between". This statement converts $_ to upper
case.
tr/a-z/A-Z/;
|
|
Keywords:perl tutorial, perl scripts, perl programming, active perl, perl download,
blackberry perl, perl regular expressions, perl split, perl array, perl script page
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|