Использование регулярных выражений Perl в VB.Net? - PullRequest
1 голос
/ 25 июля 2010

Например, в Perl вы можете написать

$string =~ tr/[a,e,i,o,u,y]/[A,E,I,O,U,Y]/;

.

Можно ли добиться таких же эффектов "перевода" с помощью регулярных выражений VB.Net?Вы!

PS: Я не ищу способ портировать этот самый пример, это скорее вопрос любопытства :)

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Стандартного метода для этого не существует.Вы можете сделать это, перебирая каждый символ во входной строке и используя словарь, чтобы сопоставить его с другим символом (или оставить его неизменным, если символ не найден в словаре).Результат может быть построен с использованием StringBuilder по соображениям производительности.

Если производительность не является проблемой, вы можете вместо этого использовать несколько операций замены:

s = s.Replace("a", "A")
     .Replace("e", "E")
     ...
     .Replace("y", "Y");
0 голосов
/ 25 июля 2010

Вот один из способов сделать это:

public string fakeTR(string theString, char[] org, char[] rep)
{
  for(int i=0;i<org.lenght;i++)
  {
    theString = theString.Replace(org[i], rep[i]);
  }
  return theString;
}

You would be able to call it with somewhat clunky but shorter:

string v = "Black in South Dakota";
v = fakeTR(v, new char[]{'B','l','a','c','k'}, new char[]{'W','h','i','t','e'}); 

H / T http://discuss.joelonsoftware.com/default.asp?dotnet.12.306220.6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...