Java Regex, чтобы удалить начало / конец одинарных кавычек, но оставить внутри кавычек - PullRequest
7 голосов
/ 23 июля 2010

У меня есть данные из файла CSV, заключенного в одинарные кавычки, например:

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

Я хочу иметь возможность заменить одинарные кавычки в начале / конце значения, но оставить кавычки в данных, например:

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

Я могу сделать

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

но я хотел знать, смогу ли я объединить это, чтобы сделать только одну замену.

Ответы [ 2 ]

16 голосов
/ 23 июля 2010

Вы можете использовать оператор или .

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

Посмотрите, подходит ли вам это:)

1 голос
/ 23 июля 2010
updateString = theString.replaceFirst("^'(.*)'$", "$1");

Обратите внимание, что форма, которую вы не имеете, не будет работать, поскольку replace использует буквенные строки, а не регулярные выражения.

Это работает с использованием группы захвата (.*), который упоминается с $1 в тексте замены.Вы также можете сделать что-то вроде:

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);

Конечно, если вы уверены, что в начале и конце есть одна кавычка, самое простое решение:

updateString = theString.substring(1, theString.length() - 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...