J'ai deux questions à propos de Regexp::Common qw/URI/et Regex en Perl. J'utilise Regexp::Common qw/URI/
pour analyser l'URI dans les chaînes et les supprimer. Mais j'ai une erreur quand un URI est entre parenthèses.En Perl, comment extraire correctement les URL entre parenthèses?
Par exemple: (http://www.example.com)
L'erreur est causée par «) », et quand il essaie d'analyser l'URI, le crash de l'application. J'ai donc pensé que deux corrections:
- faire un simple (ou je pensais) qui écrit un espace entre parenthèses et
)
caractères - Le
Regexp::Common qw/URI/
a une fonction qui mettent en œuvre une solution.
Dans mon code, j'ai essayé d'implémenter le Regex mais l'application se bloque. Le code que j'ai essayé est le suivant:
use strict;
use Regexp::Common qw/URI/;
my $str = "Hello!!, I love (http://www.example.com)";
while ($str =~ m/\)/){
$str =~ s/\)/ \)/;
}
my ($uri) = $str =~ /$RE{URI}{-keep}/;
print "$uri\n";
print $str;
La sortie que je veux est: (http://www.example.com)
Je ne suis pas sûr, mais je pense que le problème est dans $str =~ s/\)/ \)/;
BTW, J'ai une question à propos de Regexp :: Common qw/URI /. J'ai deux types de chaîne:
- ablalbalblalblalbal
http://www.example.com
- asfasdfasdf
http://www.example.com
aasdfasdfasdf
Je veux supprimer l'URI si elle est le dernier composant (et enregistrez). Et sinon, enregistrez-le sans le supprimer du texte.
Vous devriez lire les conseils sur la façon de formater votre message. Vous n'avez pas besoin d'entrer des liens en direct pour pouvoir inclure un ensemble d'URL dans votre message. Et, pas besoin d'insérer '
' dans le code. –