2009-09-07 27 views

Respuesta

31

Esto debería hacer el trabajo:?

var input = "User Name ([email protected])"; 
var output = Regex.Replace(input, @" ?\(.*?\)", string.Empty); 

Nota del escape de los ( y ) caracteres para que aren' t reconocido como marcadores de grupo.

+0

esto es ideal para hacer algo como "Nombre de usuario (1), Otro usuario (2), Usuario adicional (3)" en "Nombre de usuario, Otro usuario, Usuario adicional". Gracias por eso. –

+0

Gracias, funcionó a la perfección. – Jon649

9

¿se refiere desea que la salida nombre de usuario, en lugar de la dirección de correo electrónico? Para cualquiera de los casos, no es necesario expresiones regulares. Por ejemplo, suponiendo que la entrada es siempre bien formado y por lo tanto, omitiendo cualquier error r comprobación,

string output = input.Substring(0, input.IndexOf(" (")) 

obtendrá el nombre de usuario. Y si lo desea que la dirección de correo electrónico, que también está disponible sin tener que recurrir a expresiones regulares:

int n; 
string output = input.Substring(n = 1 + input.IndexOf('('), 
           input.IndexOf(')') - n) 
1

sólo estoy ofreciendo otra manera de hacer esto, aunque yo sólo tiene que utilizar regex a mí mismo ya que esto es torpe:

string output = input.Split('(')[0].TrimEnd(); 
Cuestiones relacionadas