2016-04-28 8 views
-2

Ich möchte ein Tool codieren, das uns hilft, Changelogs zu erstellen, indem wir die SVN-Protokolle durchgehen. Alle Commits, die ich brauche werden mit dem Format #100 : Description oder 100 : DescriptionC# Regex: Wie kann ich Zahlen, die nicht von "." und "/"

In unseren Commit-Nachrichten, gibt es ein paar Dinge, das Problem darstellen, wie zum Beispiel:

  • Aktualisierte auf Version 7.11.0.10
  • Merged Revision vom Server/repository/branches/71109: # 150: Fehlerbeschreibung

ich brauche Zahlen von . und /.

umgeben zu ignorieren

Bisher habe ich /(#{0,1})\d{3,6}/g, die eine beliebige Anzahl abholen wird, einschließlich derjenigen, die ich nicht will.

+2

[Versuchte 'zu sein @" (? M)^(# {0, 1}) (\ d {3,6}) "'] (https://regex101.com/r/eU6vM9/1)? Ist das mehrzeiliger Text, den Sie mit einer Regex verarbeiten? Wenn ja, benötigen Sie den Modifikator MULTILINE und den Startanker '^'. –

+0

Sie sagen, dass Sie Zahlen, die von '.' und'/'umgeben sind, ignorieren möchten, aber Ihre Regex schlägt vor, dass Sie nur Zahlen ignorieren möchten, die ** von diesen Zeichen ** vorangestellt sind. Welches ist es? Könnten Sie erwartete Ausgaben posten? – Bikonja

+0

Warum nicht einfach einen Wortanker verwenden, wie es Wiktor vorschlägt? Ihre Anforderungen sind unklar. Bitte geben Sie weitere Beispiele an. – ryanyuyu

Antwort

0

(?<![\/\.])#?\b\d+\b(?![\/\.]):

  • (?<![\/\.]) und (?![\/\.]) wird verhindert, dass alle führenden oder . und / Symbol Hinter.
  • beide \b davon aus, dass das Spiel wird ein einzelnes Wort ist
  • #?\b\d+\b die tatsächliche Übereinstimmung für die Ausgabenummer mit # optional
+0

Danke, sieht genauso aus wie mit @ WiktorStribiżew Kommentar.Vielen Dank, dass Sie sich die Zeit nehmen zu erklären, was jeder Abschnitt tut. – Munro89

+0

Die Erklärung ist in der Tat irreführend in dem Teil bezüglich '\ b' (Wortgrenze). –

+0

@ WiktorStribiżew ist nicht von 2 Wortgrenze umgeben, das gleiche wie zu sagen, es ist ein einzelnes Wort? – Xiaoy312

0

Könnte es funktionieren, die Leerzeichen um das Trennzeichen zu verwenden, um zu wissen, wo Sie sind?

[#,\s](\d+)\s:\s(.*) 

Würde das funktionieren? Bitte fügen Sie ein paar Beispielzeilen hinzu und ich kann meine Antwort bearbeiten, um sie zu vergleichen.

Verwandte Themen