• 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

VPS Starter Arubacloud
0 głosów
357 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 156 wizyt
0 głosów
2 odpowiedzi 355 wizyt
pytanie zadane 10 czerwca 2023 w JavaScript przez andrzej.polak Nowicjusz (220 p.)
0 głosów
1 odpowiedź 350 wizyt
pytanie zadane 9 stycznia 2022 w Matematyka, fizyka, logika przez dark41 Użytkownik (760 p.)

92,958 zapytań

141,918 odpowiedzi

321,149 komentarzy

62,288 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...