Замените символ % словом Percent

Как заменить символ "%" словом "Процент".

Моя исходная строка - «Внутренняя (%) Внешняя (%)». Строка должна быть "Внутренний (процент) Внешний (процент)"

Используя регулярное выражение, как я могу заменить этот символ?

Заранее спасибо. Атул


person user211607    schedule 09.05.2010    source источник


Ответы (4)


Здесь вам не нужно регулярное выражение, вы можете использовать обычную замену. Например, используя .net:

string s = "Internal (%) External (%)";
s = s.Replace("%", "Percent");
person Kobi    schedule 09.05.2010
comment
Требуется ли регулярное выражение, зависит от среды, которая в настоящее время не определена. Например, в Javascript регулярное выражение требуется, если ВСЕ вхождения нуждаются в замене. - person csj; 09.05.2010

строка совпадения будет просто символом процента: %

Однако реализация специфична для вашей среды регулярных выражений.

Javascript

var myString = "Internal (%) External (%)";
myString = myString.replace(/%/g,"Percent");
person csj    schedule 09.05.2010
comment
% не имеет специального значения и не должен экранироваться. Используя JavaScript, /%/ будет работать для первого символа, обязательно добавьте флаг g - /%/g - person Kobi; 09.05.2010
comment
@Kobi Ты прав, мне не нужно убегать от этого. Тем не менее, обойдите вас с глобальным флагом. ;) - person csj; 09.05.2010

Какой язык вы используете? Во многих языках для этого не потребуется регулярное выражение, например, в Python...:

>>> "Internal (%) External (%)".replace('%','Percent')
'Internal (Percent) External (Percent)'

но если вы хотите использовать RE по какой-то особой причине, это также будет легко:

>>> import re
>>> re.sub('%', 'Percent', "Internal (%) External (%)")
'Internal (Percent) External (Percent)'

детали выполнения такой глобальной замены, с RE или без них, будут различаться в зависимости от языка, поэтому трудно предложить конкретную помощь, не зная, какой язык вы используете!-)

person Alex Martelli    schedule 09.05.2010

В Java вы можете просто использовать символ %, его не нужно экранировать.

myString = myString.replaceAll("%", "Percent");

Или, если я конвертирую так, чтобы% можно было правильно отображать как HTML

myString = myString.replaceAll("%", "%");
person scottyab    schedule 10.07.2012