Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

kann mir vielleicht einer Helfen, da ich gerade dermaßen auf dem Schlauch stehe=).

Ich möchte von einer Zahl die z.b. 001234 heißt die vorderen 0 abschneiden.

Sprich mein Code sollte von links an losgehen und die nullen wegschneiden.

Am ende sollte meine zahl dann 1234 lauten

Aber er soll nicht die null in einer Zahl abschneiden also dass ich irgendwie replace mach sondern wirklich nur von vorne bis zur ersten zahl(außer 0) abschneiden.

Danke

Bsp.:

013098

=13098

003490

=3490

=) danke

Okay ich komm trotzdem nciht auf den trichter=)

ich kann ja mit instr nicht ungleich null suchen oder geht das?

weil

Pos = instr(1,meinString,<>0)

geht ja nich...

Sorry kopf ist grad total platt...

Mir würde jetzt nur noch eine schleife einfallen die ich durchlaufen lass

jedes einzelne zeichen anschau

wenn ein zeichen ungleich 0 ist mir die zahl der durchläufe merken und ab da dann abschneiden?

Bearbeitet von ChristinaB


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Text.RegularExpressions;


namespace Regularexpressions

{

    class Program

    {

        static void Main(string[] args)

        {

            string Beispielstring = "001234567";

            Regex Expression = new Regex("[0]+([0-9]+)");

            System.Console.WriteLine(Expression.Match(Beispielstring).Groups[1].Value);

            System.Console.ReadKey();

        }

    }

}

Zur Erklärung:

[0]+ bildet eine Klasse aller Nullen, die mindestens einmal oder aber auch mehrfach vornewegstehen (0, 00, 000 usw.)

() die Klammern gruppieren einen Ausdruck, der uns im Weiteren interessiert.

[0-9]+ ist die Klasse aller Ziffern, die folgen.

Expression.Match() wendet die Expression an.

Groups enthält die Gruppe der Ausdrücke, die wir oben eingeklammert haben (Groups[1] eben den ersten und Groups[n] eben alle weiteren)

Groups[n].value gibt Dir den geklammerten Ausdruck zurück; also hier: alle Ziffern nach den Nullen, die vornewegstehen.

myCSharp.de - DIE C# und .NET Community | Artikel | [Artikel] Regex-Tutorial

a) Regexes sind nicht kompliziert und universell

Für jemanden der sich damit auskennt nicht. Ich würde aber gern von einem Anfänger / Fotgeschrittenen wissen, was der folgende String überprüft, wenn man ihn an eine Regular Expression übergibt:

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

soll wohl ein Überprüfung einer EMailadresse sein:

\w ist ein beliebiger Buchstabe oder Zahl oder Unterstrich

danach folgt dann im Grunde eine beliebig lange Zeichenkette die aber noch einen Punkt enthalten darf, dann das @ Zeichen nun die Domain, bei hier mindestens auch wieder ein Zeichen folgen muss (ich meine mich aber zu erinnern, dass Domains mind 3 Zeichen enthalten müssen und nicht mit einer Zahl beginnen dürfen, somit wäre die reg Expr hier etwas unpräzise), danach folgt der Punkt (Trennung zur TLD) und danach die TLD, wobei aber auch hier wieder nur ein Buchstabe möglich wäre, denn ebenso wie bei der Domain liefer ()* auch Kleene-Stern genannt die Menge inkl der leeren Menge

@ flash: ist dir abends langweilig? :D

Generell stimme ich aber lbm zu, dass für so einen geringfügigen Anwendungsfall ein Regex den Quellcode einfach nur schwerer lesbar macht... vor allem für Leute, die nicht die JavaDoc als Gute-Nacht-Lektüre haben *zu flash rüberschau*

Würde es also so wie von lbm oder unserem piraten vorgeschlagen machen

@ flash: ist dir abends langweilig? :D

Ich fand den Ausdruck sehr einfach, drauf gucken und man sieht das doch......

Das @ war sehr verdächtigt und im Grunde steht da doch Zeichen()* @ Zeichen()* . Zeichen()*. Mein Ansatz war erst mal alles wo ein Keeme Stern drin ist zu ignorieren, naja und dann ist es eigentlich klar.

Wenn man regelmäßig mit reg Expr arbeitet oder in solchen Veranstaltungen wie theoretische Informatik oder Compilerbau sitzt, dann ist das Alltag.

Mal abgesehen davon, daß es durchaus komplexe RegExes gibt, glaube ich nicht, daß mein Beispiel unverständlich ist; vorallem habe ich es imho gut erklärt, so daß selbst jemand, der von regulären Ausdrücken noch nie etwas gehört hat, trotzdem mit meiner Erläuterung etwas anfangen kann.

Und wenn alles nix hilft, kann man sich auch selbst ne Schleife bauen, die alle führenden Nullen ignoriert, und den Rest in einen Ergebnis-String kopiert - fertig. Wofür ist man denn Programmierer? :D

Bearbeitet von lilith2k3

Also ich hab nun so geregelt einfach in ein integer umgewandelt und dann sind meine Nullen weg=)

Profil = 001234

Profil = CInt(Profil)

und schon Fertig;)

Hab ja gesagt ich stand total aufm schlauch=)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.