Как заменить специальные символы с помощью регулярных выражений?

StackOverflow https://stackoverflow.com/questions/1673408

  •  16-09-2019
  •  | 
  •  

Вопрос

Как заменить специальные символы с помощью регулярных выражений?Под особыми я подразумеваю те символические символы, которые иногда появляются в тексте.

Например, в тексте ниже я хочу удалить пузырь, который находится в начале каждой строки.

Паспортные данные

Name as on passport
Relationship
Passport Number
Date of Issue
Expiry Date
Place of Issue

Отредактированный вопрос :Извините, пузырь в начале строки больше не виден.После отправки вопроса stackoverflow удалил этот специальный символ.

Кто-нибудь знает, как заменить эти специальные символы?Я не хочу заменять символы типа #, @ или !.Они тривиальны и могут быть набраны с клавиатуры.

Извините, я не знаю, как вставить эти специальные символы в мой вопрос.Я попытаюсь объяснить.В файле Word мы ставим маркеры перед текстом.Я хочу заменить символы, отображающие такие символы.У меня есть несколько текстовых файлов, которые содержат символы, похожие на bubble .

Наконец, я нашел решение.Это регулярное выражение работает для меня

([^(A-Za-z0-9)+| | | |'|"|#|;|:|/|\|.|,| ])

Это было полезно?

Решение

У меня нет достаточно времени, чтобы привести полный пример.Но поскольку вы используете .NET, вы можете сопоставлять любое количество этих классов символов:

http://msdn.microsoft.com/en-us/library/20bw873z.aspx

Выберите то, что вы хотите принять, и замените все, что не соответствует этому набору.

Другие советы

(Это было опубликовано до того, как был указан язык.)

Для замены символов, отличных от ascii, пробелом в Perl,

 $string =~ s/[^[:ascii:]]/ /g;

Видишь http://codepad.org/KTMvQiOz .Здесь the [^[:ascii:]] является регулярным выражением, которое соответствует любому символу, отличному от ascii.

Можно было бы найти все "специальные" символы с помощью этого регулярного выражения, а затем просто заменить их символом пробела:

/[<special_characters_here>]/

Однако обычно лучше использовать белый список, таким образом упоминая все разрешенные символы и заменяя все, что ими не является, символом пробела:

/[^<allowed_characters_here>]/

Вы имеете в виду замену символов возврата каретки и новой строки?

Если это то, что вам нужно, то это поможет:

var source = "once\r\ntwice\r\nthrice";
var pattern = new Regex(@"\r\n");
var result = pattern.Replace(source, ",");
Assert.AreEqual("once,twice,thrice", result);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top