Comment faire Pour Supprimer la non-alphanumérique, ou des caractères non numériques avec la Ruche REGEXP_EXTRACT() la Fonction
J'ai été à essayer de comprendre comment supprimer une ou plusieurs non-alphanumériques ou des caractères non numériques, ou de ne renvoyer que les caractères numériques à partir d'une chaîne. J'ai essayé:
SELECT
regexp_extract('X789', '[0-9]', 0)
FROM
table_name
Mais il renvoie '7', pas '789'.
J'ai aussi essayé de supprimer les caractères non numériques à l'aide de ne PAS CORRESPONDRE à la syntaxe ^((?!regexp).)*$:
SELECT
REGEXP_REPLACE('X789', '^((?![0-9]).)*$', '')
FROM
jav_test_ii
Peut regexp_extract retour des correspondances multiples? Ce que j'essaye vraiment de le faire est de nettoyer mes données ne contenir que des nombres ou des caractères alphanumériques. Ce qui semble pour aider à éliminer les mauvais caractères, mais ce n'est pas une plage de caractères comme [0-9]. regexp_replace(string, '�',")
EDIT: La requête ci-dessous a été en mesure de retourner '7789", ce qui est exactement ce que je cherchais.
SELECT
regexp_replace("7X789", "[^0-9]+", "")
FROM
table_name
OriginalL'auteur user1152532 | 2014-01-28
Vous devez vous connecter pour publier un commentaire.
Voir aussi ce la ruche regexp_extract étrangeté
Je pense que regex_extract ne le retour du groupe nombre indiqué dans le 3e paramètre.
regex_extract
semble être la seule à travailler sur une ligne puis quittez.Je ne sais pas à propos de le remplacer homologue.
Il pourrait travailler sur la non-numérique de données que si vous avez de la fed, quelque chose comme ce
REGEXP_REPLACE(error_code, '[^a-zA-Z0-9]+', '')
Aussi, pour extrait, voir le lien ci-dessus et vous pouvez le modifier à
regexp_extract('X789', '[0-9]+', 0)
pour plusieurs numéros.ou
regexp_extract('XYZ789', '[a-zA-Z]+', 0)
pour plusieurs d'alpha.Essayez le remplacement de la méthode. Par exemple,
regexp_replace("7(-X78T9)RMM", "[^0-9]+", "")
doit retourner7789
. La regex contient un quantifiés (+) négatif ([^]) de la classe, ne signifie pas un chiffre entre 0 et 9. Il va à l'échelle mondiale, remplacer tous les non-caractères numériques. Ce n'est conformément à la documentation. Je ne peux pas le tester.Cela a parfaitement fonctionné... Merci @sln. Il semble que je pourrais utiliser un rappel sur les REGEX peuvent vous recommander des bons sites/ressources pour se lever à la vitesse? Les résultats de google pour les REGEXP Bases semblent tous pointer vers des sites qui ressemblent à leur des années 90.
Super, ça a fonctionné! Je vais essayer de wikipédia en premier. La recherche pour "expressions régulières", de lire quelques notions de base sur la nuance et de saveurs. Bonne Chance!
OriginalL'auteur sln