문자열에있는 두 개의 토큰을 모두 "c"문자가 붙은 double 값으로 바꾸려고합니다. 그것을 할 수있는 쉬운 방법이 있습니까? 나는 정규 표현식 예를 들어RegEx를 사용하여 double 찾기 및 바꾸기
을 갈 수있는 방법이라고 생각, 나는 다음과 같은
treand60(12.3)/1010 + 1 >1010
기본적으로 당신이보고 싶어
treand60(12.3c)/1010c + 1c >123c
제안
문자열에있는 두 개의 토큰을 모두 "c"문자가 붙은 double 값으로 바꾸려고합니다. 그것을 할 수있는 쉬운 방법이 있습니까? 나는 정규 표현식 예를 들어RegEx를 사용하여 double 찾기 및 바꾸기
을 갈 수있는 방법이라고 생각, 나는 다음과 같은
treand60(12.3)/1010 + 1 >1010
기본적으로 당신이보고 싶어
treand60(12.3c)/1010c + 1c >123c
제안
로 변경 싶어 모든 자릿수는 선택적으로 소수점과 다른 자릿수로 끝나고 'c'를 덧붙입니다. 여기에 펄을 사용하는 가정, 예입니다 (귀하의 질문은 말을하지 않음) :
$_ = 'treand60(12.3)/1010 + 1 >1010';
s/\b\d+(?:\.\d+)?/$&c/g;
print; # output is "treand60(12.3c)/1010c + 1c >1010c"
\d+
1 이상의 숫자이며, 다음 \.\d+
는 소수점 1 개 이상의 숫자입니다. (?: ...)
은 non-capturing group입니다. 마지막으로 ?
은 "0 또는 그 중 하나와 일치"를 의미합니다 (즉, 선택 사항 임). 그리고 \b
은 단어 경계에서만 일치한다는 것을 의미합니다 (숫자가 단어 문자 바로 뒤에 오기 때문에 "Hello123"과 같은 단어는 일치하지 않습니다).
using System.Text.RegularExpressions;
// ...
string input = "treand60(12.3)/1010 + 1 >1010";
Regex regex = new Regex(@"\b\d+(?:\.\d+)?");
string output = regex.Replace(input, (m) => m.Value + 'c');
Console.WriteLine(output); // prints "treand60(12.3c)/1010c + 1c >1010c"
Regex.Replace 호 내의 람다 식 단순히 검색 텍스트를 취득하고, 'C'를 추가 MatchEvaluator이다 : 여기
는 C# 1 당량이다.죄송합니다. C#으로 작업하고 싶다는 언급을하지 못했습니다. – mustafabar
내 업데이트를 확인하십시오. – bobbymcr
완벽하게 작동합니다. 감사합니다. – mustafabar
목적을 위해 토큰을 무엇이라고 생각하십니까? – Amber
산술 또는 논리 연산자로 구분되는 항목 또는() – mustafabar