35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Koogle.Application.Helpers
|
|
{
|
|
/// <summary>
|
|
/// Hilfsklasse für String-Operationen.
|
|
/// </summary>
|
|
public static class StringHelper
|
|
{
|
|
/// <summary>
|
|
/// Entfernt alle Inhalte in runden Klammern inklusive der Klammern.
|
|
/// Beispiel: "Hallo (Welt)!" -> "Hallo !"
|
|
/// Entfernt auch mehrfach vorhandene Klammersegmente.
|
|
/// </summary>
|
|
public static string RemoveParentheses(string input)
|
|
{
|
|
if (string.IsNullOrEmpty(input)) return input;
|
|
|
|
// Entfernt Segmente wie "(...)" ohne geschachtelte Klammern
|
|
var noParens = Regex.Replace(input, @"\s*\([^()]*\)", string.Empty);
|
|
|
|
// Aufräumen: doppelte Leerzeichen & Leerzeichen vor Satzzeichen
|
|
noParens = Regex.Replace(noParens, @"\s{2,}", " "); // Mehrfach-Whitespace -> ein Leerzeichen
|
|
noParens = Regex.Replace(noParens, @"\s+([,.;:!?])", "$1"); // Leerzeichen vor Satzzeichen entfernen
|
|
|
|
return noParens.Trim();
|
|
}
|
|
}
|
|
}
|