Patron De La Chaîne De Mise En Correspondance Dans Java
Je recherche un modèle de chaîne dans une entrée d'aiguillon.
Pour Eg.
String URL = "https://localhost:8080/sbs/01.00/sip/dreamworks/v/01.00/cui/print/$fwVer/{$fwVer}/$lang/en/$model/{$model}/$region/us/$imageBg/{$imageBg}/$imageH/{$imageH}/$imageSz/{$imageSz}/$imageW/{$imageW}/movie/Kung_Fu_Panda_two/categories/3D_Pix/item/{item}/_back/2?$uniqueID={$uniqueID}"
Maintenant, j'ai besoin de rechercher si la chaîne de caractères de l'URL contient "/{item}/
". S'il vous plaît aider moi.
C'est un exemple. En fait j'ai besoin est de vérifier si l'URL contient une chaîne de caractères correspondant "/{a-zA-Z0-9}/"
OriginalL'auteur 1355 | 2011-10-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
Pattern
classe pour cette. Si vous souhaitez associer uniquement les caractères de mot à l'intérieur de la{}
ensuite, vous pouvez utiliser les regex.\w
est un raccourci pour[a-zA-Z0-9_]
. Si vous êtes ok avec_
ensuite utiliser\w
ou d'utiliser[a-zA-Z0-9]
.est un quantificateur sens en une ou plusieurs fois.
OriginalL'auteur Narendra Yadala
C'est juste une question de
String.contient
:Si vous avez besoin de savoir où il se produit, vous pouvez utiliser
indexOf
:C'est très bien pour la mise en correspondance exacte cordes - si vous avez besoin d'une réelle modèles (par exemple, "trois chiffres suivis par plus de 2 lettres A-C"), alors vous devriez regarder dans les expressions régulières.
EDIT: Bon, il semble que vous ne voulez des expressions régulières. Vous pourriez vouloir quelque chose comme ceci:
Ok, donc c'est complètement changé la nature de la question... mais c'est pas vraiment clair ce que tu veux dire. Veuillez donner des exemples d'Url que vous faites et ne veulent pas de match. Est-il "un nombre quelconque de lettres/chiffres, mais ils doivent être dans des accolades"?
Merci. Mais "/\{([a-zA-Z0-9]*\}/" indique erreur de compilation.
J'ai besoin de vérifier ce motif "/{a-zA-Z0-9}/". Le modèle doit inclure deux barres obliques et les deux accolades. Mais les lettres peuvent être n'importe quoi.
Ok, donc d'essayer le code dans mon montage.
OriginalL'auteur Jon Skeet
Si vous voulez vérifier si une chaîne de caractères est présent dans une autre chaîne de caractères, utilisez quelque chose comme
String.contains
Si vous voulez vérifier si certains est présent dans une chaîne de caractères, ajouter et ajouter le modèle avec '.*'. Le résultat sera à accepter des chaînes qui contiennent le motif.
Exemple: Supposons que vous avez des regex a(b|c) qui vérifie si une chaîne correspond à
ab
ouac
.*(a(b|c)).*
permettra de vérifier si une chaîne contient unab
ouac
.Un inconvénient de cette méthode est qu'elle ne vous donnera pas l'emplacement du match.
OriginalL'auteur ChrisBlom
Vous pouvez le faire en utilisant
string.indexOf("{item}")
. Si le résultat est supérieur à -1{item}
est dans la chaîneJon l'a déjà fait, donc il n'est pas nécessaire de le répéter. Vous avez besoin
Pattern
et éventuellementMatcher.
OriginalL'auteur zeller