it-swarm-eu.dev

Regex correspond tout après point d'interrogation?

J'ai un flux dans Yahoo Pipes et je veux tout faire correspondre après un point d'interrogation.

Jusqu'à présent, j'ai compris comment faire correspondre le point d'interrogation en utilisant ..

\?

Maintenant, juste pour faire correspondre tout ce qui est après/suit le point d'interrogation.

96
Mark
\?(.*)

Vous voulez le contenu du premier groupe de capture.

214
thejh

Essaye ça:

\?(.*)

Les parenthèses sont un groupe de capture que vous pouvez utiliser pour extraire la partie de la chaîne qui vous intéresse.

Si la chaîne peut contenir de nouvelles lignes, vous devrez peut-être utiliser le modificateur "tout point" pour permettre au point de correspondre au caractère de la nouvelle ligne. Que vous deviez ou non faire cela, et comment le faire, dépend de la langue que vous utilisez. Il semble que vous ayez oublié de mentionner le langage de programmation que vous utilisez dans votre question.

Une autre alternative que vous pouvez utiliser si votre langue prend en charge les assertions de recherche de largeur fixe est la suivante:

(?<=\?).*
45
Mark Byers

Avec la technique positive lookbehind :

(?<=\?).*

(Nous recherchons un texte précédé d'un point d'interrogation ici)

Input: derpderp?mystring blahbeh
Output: mystring blahbeh

Exemple

Fondamentalement, le ?<= est une construction de groupe qui nécessite le point d'interrogation échappé avant que toute correspondance puisse être faite.

Ils fonctionnent très bien, mais toutes les implémentations ne les prennent pas en charge.

23
DarkNeuron
\?(.*)$

Si vous voulez faire correspondre tous les caractères après "?" vous pouvez utiliser un groupe pour faire correspondre n'importe quel caractère, et vous feriez mieux d'utiliser le signe "$" pour indiquer la fin de la ligne.

9
s3v3n

Consultez ce site: http://rubular.com/ En gros, le site vous permet de saisir un exemple de texte (ce que vous rechercheriez sur votre site), puis de le définir au fur et à mesure de la création de l'expression régulière. mettra en évidence ce qui est jumelé en temps réel.

2
Austin Lin

str.replace(/^.+?\"|^.|\".+/, '');

Ceci est parfois mauvais à utiliser lorsque vous voulez sélectionner quoi d'autre à supprimer entre "" et que vous ne pouvez pas l'utiliser plus de deux fois dans une chaîne. Il ne fait que sélectionner ce qui ne se trouve pas entre "" et le remplacer par rien.

Même pour moi, c'est un peu déroutant, mais je vais essayer de l'expliquer. ^.+? (rien de FACULTATIF) avant le " puis | ou/stop (toujours à la recherche de ce que cela signifie réellement) jusqu'à ce que/à ^. n'ait rien sélectionné avant le 2e " avec (| stop/at). Et sélectionnez tout ce qui vient après avec +.

0
Kadhem