Question Regex matcher la casse de chaine

Plus d'informations
il y a 14 ans 5 mois #5548 par physyo
Bonjour à tous.

Je cherche le moyen de vérifier si une chaine et en majuscule ou en minuscule via un regex

j'ai réussi à faire ceci:

[code:1]\"Chaine\" -cmatch \"^[A-Z]\"

true
[/code:1]

Mais je veux matcher la casse de tout les caractère.
je pensais faire un truc du genre:

[code:1] \"CHAINE\" -cmatch \".[A-Z]\"

true

\"CHaiNe\" -cmatch \".[A-Z]\"

false
[/code:1]

Avez-vous un idée ?

Merci de votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5550 par Laurent Dardenne
Je pense qu'il faut inverser la recherche, c'est à dire rechercher la présence de minuscule pour tester si tout est en majuscule et inversement:
[code:1]
#match au premier caractère minuscule rencontré
$matches=$false;\"CHAiNE\" -cmatch \"[a-z]\";$Matches
# True
# Name Value
# ----
# 0 i
$matches=$false;\"CHAiNE abc\" -cmatch \"[a-z]\";$Matches
# True
# Name Value
# ----
# 0 i
$matches=$false;\"CHAINE\" -cmatch \"[a-z]\";$Matches
#False
#False
#match au premier caractère majuscule rencontré
$matches=$false;\"caractèrEs\" -cmatch \"[A-Z]\";$Matches
# True
# Name Value
# ----
# 0 E
$matches=$false;\"caractèrEs ABC\" -cmatch \"[A-Z]\";$Matches
# True
# Name Value
# ----
# 0 E
$matches=$false;\"caractères\" -cmatch \"[A-Z]\";$Matches
#False
#False
[/code:1]
Et avec \".[A-Z]\" tu recherches 2 caractères, n'importe quel caractère plus un caractère majuscule.
Il doit y avoir d'autres solutions et je n'ai pas créé de jeux de test...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5555 par otokonohito
Bonjour,

Essai ceci

[code:1]\"^[A-Z]*$\"[/code:1]

ou si tu ne veux pas le champ vide comme bonne réponse, ceci

[code:1]\"^[A-Z]+$\"[/code:1]

mais attention cette solution ne supporte pas les espaces.
Pour avoir des espaces, essai :

[code:1]\"^[A-Z| ]*$][/code:1]

ou

[code:1]\"^[A-Z| ]+$][/code:1]

Pour plus d'infos va voir

fr.wikipedia.org/wiki/Expression_rationnelle

Cordialement

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5556 par otokonohito
Pardon j'ai inversé deux caractères sur les deux dernières commandes

[code:1]\"^[A-Z]*$\"
\"^[A-Z]+$\"
\"^[A-Z| ]*]$
\"^[A-Z| ]*]$[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5557 par otokonohito
Décidément...:pinch:

[code:1]\"^[A-Z]*$\"
\"^[A-Z]+$\"
\"^[A-Z| ]*$
\"^[A-Z| ]+$[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 5 mois #5560 par Laurent Dardenne
Rien ne vaut quelques tests (à compléter bien sûr :) ).
-MATCH :
[code:1]
\"^[A-Z]*$\",
\"^[A-Z]+$\",
\"^[A-Z| ]*$\",
\"^[A-Z| ]+$\",
\"^[A-Z|\s]*$\",
\"^[A-Z|\s]+$\",
\"[a-z]\",
\"[A-Z]\"| %{
Write-Host \"Regex : `\"$_`\" \"
Write-Host \"CHAiNE : \" -Nonewline
$matches=$false;\"CHAiNE\" -match $_
Write-Host \"CHAiNE abc : \" -Nonewline
$matches=$false;\"CHAiNE abc\" -match $_
Write-Host \"CHAINE : \" -Nonewline
$matches=$false;\"CHAINE\" -match $_
Write-Host \"caractèrEs : \" -Nonewline
$matches=$false;\"caractèrEs\" -match $_
Write-Host \"caractèrEs ABC : \" -Nonewline
$matches=$false;\"caractèrEs ABC\" -match $_
Write-Host \"caractères : \" -Nonewline
$matches=$false;\"caractères\" -match $_
Write-Host \"CARACtères : \" -Nonewline
$matches=$false;\"CARACtères\" -match $_
Write-Host \"caracTERES : \" -Nonewline
$matches=$false;\"caracTERES\" -match $_
Write-Host
pause
}
[/code:1]
-CMATCH :
[code:1]
\"^[A-Z]*$\",
\"^[A-Z]+$\",
\"^[A-Z| ]*$\",
\"^[A-Z| ]+$\",
\"^[A-Z|\s]*$\",
\"^[A-Z|\s]+$\",
\"[a-z]\",
\"[A-Z]\"| %{
Write-Host \"Regex : `\"$_`\" \"
Write-Host \"CHAiNE : \" -Nonewline
$matches=$false;\"CHAiNE\" -cmatch $_
Write-Host \"CHAiNE abc : \" -Nonewline
$matches=$false;\"CHAiNE abc\" -cmatch $_
Write-Host \"CHAINE : \" -Nonewline
$matches=$false;\"CHAINE\" -cmatch $_
Write-Host \"caractèrEs : \" -Nonewline
$matches=$false;\"caractèrEs\" -cmatch $_
Write-Host \"caractèrEs ABC : \" -Nonewline
$matches=$false;\"caractèrEs ABC\" -cmatch $_
Write-Host \"caractères : \" -Nonewline
$matches=$false;\"caractères\" -cmatch $_
Write-Host \"CARACtères : \" -Nonewline
$matches=$false;\"CARACtères\" -match $_
Write-Host \"caracTERES : \" -Nonewline
$matches=$false;\"caracTERES\" -match $_
Write-Host
pause
}
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.070 secondes
Propulsé par Kunena