• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Wyrażenia regularne (regex) - Zaznaczanie wszystkiego między dwoma wyrażeniami

Object Storage Arubacloud
0 głosów
341 wizyt
pytanie zadane 15 stycznia 2016 w Algorytmy przez Adam Nowicki Obywatel (1,600 p.)
zamknięte 15 stycznia 2016 przez Adam Nowicki

Cześć, potrzebuję regexa, który wyciąga mi wszystko między jednym a drugim wyrażeniem. Przykładowy tekst:

A234654
Andrzej
Ala
B22564654
Ola
Przemek
Michał
A2351651
Lol
B2135

I tutaj chciałbym wyciągać wszystko między A\d+ a B\d+ czyli 2 matche:

  1. Ala Andrzej
  2. Lol

Ilość linijek ma nie mieć wpływu i ma rozbijać to na osobne matche. Próbowałem sam coś takiego wyskrobać, i doszedłem do czegoś takiego:
A\d+((.*\n)?)*B\d+

Niestety, to zaznacza do ostatniego znalezionego w tekście B\+d a nie pierwszego by to rozbić. Jeśli to ma znaczenie to dodam, że implementacja tego będzie się odbywać w C#.

komentarz zamknięcia: Znalazłem rozwiązanie. Dla pokoleń: (.|\n)*?
komentarz 19 lipca 2016 przez Andrzej Kmicic Początkujący (410 p.)
edycja 19 lipca 2016 przez Andrzej Kmicic

 

Polecam plugin do Notepada++ Olega Sthilo (Cs-Script), dla prostych rozwiązań nie trzeba odpalać VisualStudio a nawet można skompilować do pliku exe.


using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.IO;

class Script
{
    [STAThread]
    static public void Main(string[] args)
    {
		string pattern = @"(A[0-9]+)((.|\n)*?)(B[0-9]+)";
		string input = File.ReadAllText("C:\\Users\\wojte\\Documents\\email.txt");
		//Console.WriteLine(input);
      foreach (Match match in Regex.Matches(input, pattern, RegexOptions.Multiline))
         Console.WriteLine("{0}", match.Groups[2]);
    }
}

Podobne pytania

0 głosów
0 odpowiedzi 128 wizyt
0 głosów
2 odpowiedzi 290 wizyt
pytanie zadane 10 czerwca 2023 w JavaScript przez andrzej.polak Nowicjusz (220 p.)
0 głosów
1 odpowiedź 340 wizyt
pytanie zadane 9 stycznia 2022 w Matematyka, fizyka, logika przez dark41 Użytkownik (760 p.)

92,666 zapytań

141,564 odpowiedzi

320,019 komentarzy

62,031 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...