2008-09-29 23 views

Respuesta

27

De MSDN:

Replace(String, String, Int32) 

Dentro de una cadena de entrada especificada, sustituye a un número máximo especificado de cadenas que coinciden con un patrón de expresión regular con una cadena de reemplazo especificada.

¿No es esto lo que quieres?

25

Sólo para responder a la pregunta original ... La siguiente expresión coincide con sólo la primera aparición de la palabra foo: (?! <)

(?<!foo.*)foo

Esta expresión regular utiliza la búsqueda hacia atrás negativo para asegurarse de que no se encuentre ninguna instancia de foo antes del emparejado.

3

Probablemente estaba usando el método estático. No hay sobrecarga (String, String, Int32) para eso. Construya un objeto regex primero y use myRegex.Replace.

0

En ese caso no se puede utilizar:

string str ="abc546_$defg"; 
str = Regex.Replace(str,"[^A-Za-z0-9]", ""); 

lugar tiene que declarar nueva instancia expresiones regulares y utilizar de esta manera:

string str ="abc546_$defg"; 
Regex regx = new Regex("[^A-Za-z0-9]"); 
str = regx.Replace(str,"",1) 

Aviso del , representa el número de veces que debe producirse el reemplazo.

0

En lugar de crear un new Regex también se puede hacer

Regex.Replace(originalString, "^"+pattern, stringToReplaceWith);

para sustituir primera ocurrencia.

Cuestiones relacionadas