2010-07-23 12 views
7

tengo datos de un archivo CSV que está encerrada entre comillas simples, como:Java expresiones regulares para eliminar de inicio/final comillas simples, pero que dejan entre comillas

'Company name' 
'Price: $43.50' 
'New York, New York' 

yo quiero ser capaz de reemplazar las comillas simples en el inicio/final del valor, pero dejan las cotizaciones en los datos, como:

'Joe's Diner' should become Joe's Diner 

que puedo hacer

updateString = theString.replace("^'", "").replace("'$", ""); 

pero quería saber si podría combinarlo para solo hacer un reemplazo.

+0

desea permitir que las cotizaciones no balanceadas * y * ¿usa comillas para escapar de las comas dentro de una celda? No es posible hacer ambas cosas a la vez. – finnw

+0

Sí, puede combinarlos con bastante facilidad. Eche otro vistazo a la respuesta de @ Josiah, ahora que está usando el método correcto. –

Respuesta

16

Puede usar el operador o.

updateString = theString.replaceAll("(^')|('$)",""); 

ver si funciona para ti :)

+0

Tuve que cambiarlo para reemplazarTodo, pero luego funcionó. Si actualiza su respuesta, la aceptaré – George

+0

Me alegro de haber ayudado :) – Josiah

+0

Necesito enfrente de esto. Quiero convertir esto // * [@ text = 'some'Text'] to // * [@ text = 'some \' Text '] – vaibhavcool20

1
updateString = theString.replaceFirst("^'(.*)'$", "$1"); 

Tenga en cuenta que la forma no tienes no funcionará porque replace utiliza cadenas literales, no expresiones regulares.

Esto funciona mediante el uso de un grupo de captura (.*), al que se hace referencia con $1 en el texto de reemplazo. También se podría hacer algo como:

Pattern patt = Pattern.compile("^'(.*)'$"); // could be stored in a static final field. 
Matcher matcher = patt.matcher(theString); 
boolean matches = matcher.matches(); 
updateString = matcher.group(1); 

Por supuesto, si está seguro de que hay una comilla simple al principio y al final, la solución más simple es:

updateString = theString.substring(1, theString.length() - 1); 
Cuestiones relacionadas