using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\G #anclado a \A o fin de última coincidencia
( #Grupo 1: Caracteres previos
[^\h\\'\v]*+ # Todo menos caracteres especiales
(?: # Repetir infinitas veces
(?: # Alternativas:
(?!^)\h # a. espacio simple que no
(?!\h|$) # está al ppio ni al final
| \v # b. línea nueva
| \\. # c. cualquier escape
| '[^'\\]*+ # d. comillas
(?:(?:''|\\.)[^'\\]*)*
' #
) #
[^\h\\'\v]*+ # Seguido de más texto no especial
)* #
) #(fin G1)
(?: #Espacios:
^\h+ # a. al ppio de la línea
| \h+(\h|$) # b. en el medio o al final
) #";
string substitution = @"$1$2";
string input = @" select * , fooo ,
a,
b,
c
from
table
where a = 'a b'
or campo = 'borra los espacios \'no?'
and c = 1;";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx