Quel Regex capturerait tout de ‘marque à la fin d’une ligne?

J’ai un fichier texte qui dénote des remarques simples.

Certaines lignes ont deux guillemets, mais je dois tout récupérer à partir de la première instance d’un ' et du saut de ligne.

 I AL01 ' A-LINE '091398 GDK 33394178 402922 0831850 ' '091398 GDK 33394179 I AL02 ' A-LINE '091398 GDK 33394180 400722 0833118 ' '091398 GDK 33394181 I A10A ' A-LINE 102 ' 53198 DJ 33394182 395335 0832203 ' ' 53198 DJ 33394183 I A10B ' A-LINE 102 ' 53198 DJ 3339418 

 '.* 

Je crois que vous avez besoin de l’option Multiline.

La regex appropriée serait le caractère suivi de n’importe quel nombre de caractères [y compris les caractères nuls] se terminant par un jeton de fin de chaîne / ligne:

 '.*$ 

Et si vous vouliez tout capturer après le caractère ‘sans l’inclure dans la sortie, vous utiliseriez:

 (?< =').*$ 

Cela dit essentiellement, donnez-moi tous les caractères qui suivent le caractère jusqu'à la fin de la ligne.

Edit : Il a été noté que $ est implicite lors de l'utilisation de. * Et n'est donc pas ssortingctement requirejs, donc le motif:

 '.* 

est techniquement correct, mais il est plus clair d'être précis et d'éviter toute confusion pour la maintenance ultérieure du code, d'où mon utilisation de $. Je pense qu'il est toujours préférable de déclarer un comportement explicite plutôt que de compter sur un comportement implicite dans des situations où la clarté pourrait être mise en doute.

 '.*$ 

En commençant par un seul guillemet ( ' ), faites correspondre tout caractère ( . ) Zéro ou plusieurs fois ( * ) jusqu’à la fin de la ligne ( $ ).

Lorsque j’essayais “. * Dans Windows (Notepad ++), tout correspondrait après le premier” jusqu’à la fin de la dernière ligne.

Pour capturer tout jusqu’à la fin de cette ligne, j’ai tapé ce qui suit:

 '.*?\n 

Cela ne ferait que capturer tout depuis la fin de cette ligne.

Cela capturera tout jusqu’à la référence arrière 1 – et tout ce qui se trouve après le retour en arrière 2. Il se peut que vous deviez échapper aux apostrophes en fonction de la langue (\)

 /^([^']*)'?(.*)$/ 

Modification rapide: si la ligne ne comporte pas de «- backreference», la référence 1 doit toujours être prise en compte.

 ^ - start of ssortingng ([^']*) - capture any number of not ' characters '? - match the ' 0 or 1 time (.*) - capture any number of characters $ - end of ssortingng 

Dans votre exemple, je choisirais le modèle suivant:

 '([^\n]+)$ 

utiliser des options multilignes et globales pour faire correspondre toutes les occurrences.

Pour inclure le saut de ligne dans le match, vous pouvez utiliser:

 '[^\n]+\n 

Mais cela pourrait manquer la dernière ligne si elle n’a pas de saut de ligne.

Pour une seule ligne, si vous n’avez pas besoin de faire correspondre le saut de ligne, je préférerais utiliser:

 '[^$]+$