2014-02-04 7 views
2

У меня есть слово ST.JOHN'SЗаменить одинарные кавычки, если она одна

Если я запускаю это два раза (ради аргумента, у меня есть законный повод):

String.Replace("'", "''") 

результат будет ST.JOHN''''S

Как я могу заменить ' одинарной кавычки с '' две одинарные кавычки только когда ' одиночной кавычки без каких-либо дополнительных ' одинарных кавычек?

+1

насчет 'YourMethod ("ИОАННА '' 'S")'? Сколько апострофов вы хотите в своем результате? – knittl

ответ

5

Вы можете использовать regular expression, как это:

Regex.Replace("ST.JOHN'S", "([^']|^)'([^']|$)", "$1''$2") // ST.JOHN''S 

Или так:

Regex.Replace("ST.JOHN'S", "(?<!')'(?!')", "''") // ST.JOHN''S 

Так или иначе, это будет только заменить отдельные ' символ не окружения других ' символов ,

1

Вы можете использовать регулярное выражение, чтобы утверждать, что цитата сама по себе.

System.Text.RegularExpressions.Regex.Replace(inputText, "(?<!')'(?!')", "''") 

Результат:

System.Text.RegularExpressions.Regex.Replace("ST.JOHN'S", "(?<!')'(?!')", "''") 
// ST.JOHN''S 

System.Text.RegularExpressions.Regex.Replace("ST.JOHN''S", "(?<!')'(?!')", "''") 
// ST.JOHN''S 
Смежные вопросы