C# में स्ट्रिंग से अक्षरों, अंकों और डैश के अलावा सभी कैरेक्टर कैसे हटाएं?
```html
सभी को नमस्ते! मैं C# में नया हूँ और मुझे एक समस्या का सामना करना पड़ा: मुझे स्ट्रिंग से अक्षरों (लैटिन और सिरिलिक), अंकों और डैश (-) के अलावा सभी कैरेक्टर हटाने हैं। उदाहरण के लिए, एक स्ट्रिंग है:
```csharp
string input = "Hello-World! How are you? (test) 123-456 #2024";
```
इससे यह प्राप्त होना चाहिए:
```
Hello-World How are you test 123-456 2024
```
अर्थात, विराम चिह्न, स्पेस, कोष्ठक, हैशटैग और अक्षरों, अंकों और डैश के अलावा बाकी सब हटा दिया जाता है।
मैंने `Regex.Replace` का उपयोग पैटर्न `[^a-zA-Z0-9-]` के साथ करने की कोशिश की, लेकिन यह सिरिलिक हटा देता है, जबकि मुझे इसे रखना है। अगर `а-яА-Я` जोड़ता हूं, तो स्पेस के साथ कुछ समस्याएं रहती हैं — वे भी हट जाते हैं, जबकि मुझे स्पेस को रखना है।
कृपया बताएं कि सही regular expression कैसे बनाएं या कोई और तरीका है? अधिमानतः
```