0
votes

PowerShell pour trouver le numéro de voyage

Comment cela est possible de trouver sur le chiffre de voyage (numéro) qui se déplace à l'intérieur de la chaîne.

Comme si j'ai une chaîne qui contient toujours beaucoup de caractères différents et que j'ai besoin de trouver un seul chiffre.

Exemple:

CV45H.CDXE 5 HDSE.456YUTFGH.GSAWFYDFX.ZD776R345.eytuhjg.fryh $ 76

Dans cet exemple, il devrait renvoyer 5

cbn.tg444.33fvbbsery.ddfby & sdcbnbbb. # 353fdd4437.809c 2 g345.fvbwse645

Dans cet exemple doit renvoyer 2


2 commentaires

Y a-t-il une certaine logique quant à quel chiffre vous voulez trouver dans l'une de ces chaînes?


J'utiliserais regex mais quelles sont les conditions de vos chiffres? Sur la base de ce qui devrait être retourné? Qu'est-ce que tu as fait jusqu'à présent?


4 Réponses :


1
votes

Basé sur les "détails" que vous fournissez, je suppose que vous recherchez le chiffre qui n'a pas de chiffres voisins. La regex pour cela est \ d (\ d) \ d ( voir la démo < / a>): xxx


0 commentaires

1
votes

Si vous souhaitez saisir le premier numéro à une seule chiffre à partir d'une chaîne:

(?<!        # negative look-behind
  \d        # asserting there's no digit behind
)           # end look-behind
(?<digit>   # named group 'digit'
  \d        # matching a single digit
)           # end named group
(?!         # negative look-ahead
  \d        # asserting there's no digit ahead
)           # end look-ahead


1 commentaires

C'est une solution totalement grande, c'est aussi!



0
votes

wow, merci. Tomas, spécial pour vous. Je ne savais pas à propos de " https://regex101.com "

J'ai trouvé une solution: C'est comme ça [[: alpha:]] \ d [[: alpha:]]]


1 commentaires

D'après ce que je peux dire, ni DotNet ni le sous-ensemble de Posh de cette assistance de ces classes de caractères POSIX. Avez-vous testé ce modèle de regex dans PowerShell? [ Grin ]



0
votes

Voici encore une autre méthode. [ Grin ] Il n'est pas aussi efficace que les versions principalement de regex, mais il peut être plus facile de comprendre.

Ceci présume que votre "numéro de voyage" est simplement le 1er numéro à un chiffre de la chaîne. ce qu'il fait ...

  • enregistre la chaîne à un $ var
  • scissions sur les non-chiffres de
    Cela consomme les cibles fractionnées et vous donne une bouquet de cordes qui consistent uniquement à des chiffres ou sont vides.
  • filtre les articles vierges
    La scission sur toute série non chiffrée donne à un élément vierge de fractionnement des chaînes Alfa.
  • Troie par la longueur des chaînes
  • attrape le 1er article

    le code ... xxx

    sortie = 5


0 commentaires