web-dev-qa-db-fra.com

Expression régulière pour rechercher plusieurs chaînes (Textpad)

Je suis un peu nouveau à regex et cherche à rechercher plusieurs lignes/instants de certaines chaînes génériques telles que * 8768, * 9875, * 2353.

Je voudrais tirer toutes les instances de ceux-ci (dans un fichier) plutôt que de les rechercher individuellement.

Toute aide est grandement appréciée. J'ai essayé des choses telles que * 8768, * 9875 etc ...

35
gfuller40

Si je comprends ce que vous demandez, c'est une expression régulière comme celle-ci:

^(8768|9875|2353)

Cela correspond aux trois ensembles de chaînes de chiffres au début de la ligne uniquement.

51
wallyk

Pour obtenir les lignes contenant les textes 8768, 9875 ou 2353, utilisation:

^.*(8768|9875|2353).*$

Ce que cela veut dire:

^                      from the beginning of the line
.*                     get any character except \n (0 or more times)
(8768|9875|2353)       if the line contains the string '8768' OR '9875' OR '2353'
.*                     and get any character except \n (0 or more times)
$                      until the end of the line

Si vous voulez le littéral * Char, tu devrais y échapper:

^.*(\*8768|\*9875|\*2353).*$
31
acdcjunior

Je suggère une bien meilleure solution. La tâche dans mon cas: ajouter http://google.com/ chemin avant chaque enregistrement et importer plusieurs champs.

Valeur de champ unique CSV (toutes les images ont juste un nom de fichier, séparé par |):
"123.jpg | 345.jpg | 567.jpg"

Tamper 1st plugin: recherchez et remplacez par REGEXP: modèle: /([a-za-ZA-Z0-9]*)./ replacement: http://google.com/ $ 1

Tamper 2nd plugin: explose setting: exploser par |

Dans ce cas, vous n’avez pas besoin de mappages de champs supplémentaires et vous pouvez utiliser 1 champ dans CSV.

0
Alex