당신은 예를 들어VB.Net에서 펄 정규식 구문을 사용하고 계십니까? 펄에서
$string =~ tr/[a,e,i,o,u,y]/[A,E,I,O,U,Y]/;
를 작성할 수 있습니다.
VB.Net 정규식과 동일한 "번역"효과를 얻을 수 있습니까?
고마워요!
PS : 나는 포트에 방법이 매우 예를 검색하고 있지 않다, 그것은 표준 방법이를위한 없다 호기심 질문 :
당신은 예를 들어VB.Net에서 펄 정규식 구문을 사용하고 계십니까? 펄에서
$string =~ tr/[a,e,i,o,u,y]/[A,E,I,O,U,Y]/;
를 작성할 수 있습니다.
VB.Net 정규식과 동일한 "번역"효과를 얻을 수 있습니까?
고마워요!
PS : 나는 포트에 방법이 매우 예를 검색하고 있지 않다, 그것은 표준 방법이를위한 없다 호기심 질문 :
의 더. 입력 문자열의 각 문자를 반복하고 사전을 사용하여 다른 문자에 매핑하거나 사전에 문자가 없으면 변경하지 않고 그대로 둘 수 있습니다. 성능상의 이유로 StringBuilder
을 사용하여 결과를 빌드 할 수 있습니다.
성능이 문제가되지 않는 경우 대신 작업을 대체 몇 가지를 사용할 수 있습니다
이s = s.Replace("a", "A")
.Replace("e", "E")
...
.Replace("y", "Y");
내가 말했듯이이 예제의 동작을 복제하려고하지는 않지만 비슷한 구조가 있다면 지금 싶을뿐입니다. –
@CFP : 그렇다면 대답은 '아니오'입니다.하지만 다음 중 하나를 사용하여 직접 작성할 수 있습니다. 내 대답 (첫 번째 단락)에서 설명한 방법. –
다음은이 할 수있는 한 가지 방법이다 :
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
예제는'$ string = ~ tr/aeiouy/AEIOUY /;'로 더 간결하게 작성되었습니다. – mob
놀랍게도 대괄호와 쉼표는 t에 있기 때문에 그가 작성한대로 올바르게 작동한다는 것입니다 그는 두 줄의 같은 장소. 대괄호와 쉼표를 같은 문자로 바꿉니다. 교체 횟수가 줄어들지 만 자주 사용되지 않습니다. – cjm