VB net zakres wyszukiwania

Witam.Potrzebuję banalnej pomocy jako iż jestem początkujący.

Jak mogę wyszukać w pliku tekstowym i dodać do zmiennej tekst ze środka   ala ma kota 

podając konkretny nie zmieniający się początek  <code34>  i koniec  test525:

test525:ala ma kota<code34>

 

Wyrażenie regularne, jedyne co mi sensownego przychodzi do głowy.

Możesz pomóc mi to ulożyć?:slight_smile:

gdybym wiedział jak nie pisałbym tego posta:)

Nie programuję w VB więc jak się pracuje z wyrażeniami regularnymi musisz doczytać sam:

http://www.tutorialspoint.com/vb.net/vb.net_regular_expressions.htm

https://msdn.microsoft.com/pl-pl/library/8yttk7sy(v=vs.110).aspx

http://www.regular-expressions.info/dotnet.html

Tutaj masz podobny przypadek z rozwiązaniem:

http://stackoverflow.com/questions/12101766/vb-net-match-string-between-parentheses-brackets

Swoją drogą czemu robisz to w VB?

sam nie dam rady tego ułożyć…:frowning:

jeżeli początek i koniec są wyrażeniami stałymi, to nie trzeba używać wyrażeń regularnych, a tylko wykorzystać funkcję:

i=instr(tekst, tekstszukany) wskazującą pozycję wyrażenia tekstszukany, w wyrażeniu tekst.

Oraz funkcji tekst0=mid(tekst,k,liczbaznakow) wycinającą z wyrażenia tekst fragment tekstu począwszy od pozycji k fragment tekstu o długości: liczbaznakow)

https://msdn.microsoft.com/pl-pl/library/dd789093.aspx

przykład:

tekst = “aaaaa test525:ala ma kota<code34> bbbb”

To już będzie mi łatwiej dzięki ale liczba znaków może być rózna adres nie będzie miał zawsze określonej liczby znaków

Prawdopodobnie znalazłem rozwiązanie ale kod jest w C napisany:(

http://stackoverflow.com/questions/17940315/find-all-words-starts-with-and-ends-with-in-long-string

Dałeś konkretny przykład to dostałeś konkretne rozwiązanie do tego przykładu. Można też używać zmiennych zawierających tekst do wyszukiwania.

Jeżeli teksty do wyszukiwania zmieniają się, ale mają jakąś charakterystyczną strukturę, to  wtedy rzeczywiście trzeba by używać wyrażeń regularnych i nimi musiał byś się zainteresować bo z twojego przykładu i tego co piszesz nie można nic wywnioskować (zbyt ogólnikowe), a zatem i podać konkretnego rozwiązania. Przynajmniej ja nie potrafię. Tu masz opisane wyrażenia regularne i jak się je buduje.

https://msdn.microsoft.com/pl-pl/library/hs600312(v=vs.110).aspx

 

.

 

Rozumiem,w takim wypadku pokaże wprost o co mi chodzi.

Fragment kodu z którego muszę wyciągnąć adres m3u8 i skopiować do zmiennej biorąc pod uwagę iż adres ten może zawierać różną liczbe znaków.Sądzę że ktoś mi pomoże:

<script type='text/javascript'>
    $(document).ready(function() {
        
            if (HasFlash() && ('False'=='' || 'False' == 'False')) {
    EmbedViewerSwf(
        "/static/flash/CBV_2p648.swf",
        '007__cinnemma',
        'edge39-a.stream.highwebmedia.com',
        '/xml/viewer.xml',
        '0',
        'login_required_true_if_loggedin',
        '0',
        "https://ssl-ccstatic.highwebmedia.com/flash/playerProductInstall.swf",
        'AnonymousUser',
        "$.mydefchatconn('join_group_show')",
        "$.mydefchatconn('spy_on_private')",
        'registration_required()',
        '0',
        "https://ssl-ccstatic.highwebmedia.com/images/flashwatermark.png",
        "",
        'anonymous',
        'e1a01be8f6d528b50932827dfba6f913db0e21fef80330d0777765aa12ad1537',
        '100',
        '100',
        '0'
    );
} else {
    var html = "<div id='still_video' style='display: none'>";
    html += "<video id='still_video_object'";
    html += "src='http://origin13.stream.highwebmedia.com:1935/lix-origin/0078__video-sd-629698d9628f0711cd6d4a0a98124d41be4ded32511bc51967f3a69c5bdcdbd2_aac/playlist.m3u8'";
    html += "width='498px' height='407px'";
    html += "webkit-playsinline autoplay></video></div>";
    $('#still_video_container').html(html);
    $('#still_video').show();
    if (typeof(resizable_player) != "undefined") {
        resizable_player.init('0' == '1', true);
    }
}


    if(typeof resizable_player != "undefined"){
        resizable_player.set_resolution_to_max();
    }
    if(typeof $.mydefchatconn != "undefined"){
        $.mydefchatconn('scroll_chat_into_view');
    }
    $(window).bind('resize', function(event) {
        if (this == event.target) {
            if(typeof resizable_player != "undefined"){
                resizable_player.set_resolution_to_max();
            }
        }
    });

 

I tu jest pies pogrzebany.

 Miałem właśnie na myśli gotowca ale szczerze mówiąc wiele się dowiedziałem  szukając rozwiązania i chyba już jestem blisko:) 

Bardzo przepraszam za problem i za to  że nie powiedziałem że chodzi mi o gotowca ale wasze wskazówki mimo to pomogły mi bardzo:)

 

Tak to rozwiązałem:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' Dim source As String = File.ReadAllText("v.html")


        Dim regex As Regex = New Regex("http://\b\S+?\b.m3u8")
        Dim match As Match = regex.Match("24tg34yh3e5y$%&:#$%^&*(&&^6html += ""src='http://origin13.stream.hgmedia.com:1935/liv/007__cinnemma-sd-629698d9628f0711cd6d4a0a98124d41be4ded32511bc51967f3a69c5bdcdbd2_aac/playlist.m3u8'"";")
        If match.Success Then

        End If
        MsgBox(match.Value)


    End Sub

 

Prawda jest taka że wystarczyło by rozwiązanie dostarczone przez floyd’a jako pierwsze (bo identyfikator zgodnie z założeniami html jest jeden), więc wystarczy wrzucić dłuższy ciąg początkowy. Wyrażenia regularne są wolniejsze :wink:

Gdybym wiedział jeszcze o czym mówisz…:slight_smile:

Dobre. :slight_smile: , ale ponieważ jesteś sympatyczny i się nie awanturujesz, to jeszcze raz.

Niech tekst=“aa http://onet.pl  bbb”

Oj nie powiedziałbym,no może w internecie…:slight_smile:

Dzięki za wytłumaczenie ale mi zajmie zrozumienie tego co napisałeś znacznie dłużej :)

 

Przecież, to tylko przykład dla lepszego zrozumienia, a dla innego wyrażenia będą też inne liczby.