/ / Použitie Regex Replace namiesto String Replace - c #, asp.net, regex

Použitie Regex Nahradiť namiesto reťazca Nahradiť - c #, asp.net, regex

Nie som na Regexe tak veľa, ako by som mal byť, takže to môže vyzerať ako hlúpe otázka.

Rozdeľujem a string do a string[] s .Split(" ").
Účelom je skontrolovať slová alebo nahradiť akékoľvek.

Problém, ktorý teraz mám, je, že aby slovo bolo nahradené, musí to byť presná zhoda, ale so spôsobom, akým som ho rozdeľoval, môže existovať ( alebo [ s rozdeleným slovom.

Doteraz, aby som to napísal, používam niečo také:
formattedText.Replace(">", "> ").Replace("<", " <").Split(" ").

Teraz to funguje dobre, ale chcem začleniť viac špeciálnych znakov, ako napr [;\/:*?"<>|&"].

Existuje rýchlejší spôsob, ako metóda môjho nahradenia, ako napríklad Regex? Mám pocit, že moja trasa je ďaleko od najlepšej odpovede.

UPRAVIŤ
This is an (example) string
by sa nahradilo. \ t
This is an ( example ) string

odpovede:

4 pre odpoveď č. 1

Ak chcete nahradiť celé slová, môžete to urobiť s podobným regulárnym výrazom.

string text = "This is an example (example) noexample";
string newText = Regex.Replace(text, @"bexampleb", "!foo!");

newText bude obsahovať "This an !foo! (!foo!) noexample"

Kľúčom je, že b je metacharakter slova break. Bude teda zodpovedať na začiatku alebo na konci riadku a prechodom medzi slovnými znakmi (w) a ne-slovnými znakmi (W). Najväčší rozdiel medzi ním a použitím w alebo W je ten, že tí, ktorí vyhrali, sa nezhodujú na začiatku alebo konci riadkov.


0 pre odpoveď č. 2

To je to, čo chcete

ak chcete, aby tieto symboly ->; /: *? "<> | &" nahradili

string input = "(exam;\/:*?"<>|&"ple)";
Regex reg = new Regex("[;\/:*?"<>|&"]");
string result = reg.Replace(input, delegate(Match m)
{
return " " + m.Value + " ";
});

ak chcete nahradiť všetky znaky okrem a-zA-Z0-9_

 string input = "(example)";
Regex reg = new Regex(@"W");
string result = reg.Replace(input, delegate(Match m)
{
return " " + m.Value + " ";
});