당신은 어떻게 검색 선택한 텍스트 정규식을 사용하여 C#에서?

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

  •  08-06-2019
  •  | 
  •  

문제

당신은 어떻게 검색 선택한 텍스트 정규식을 사용하여 C#에서?

내가 찾는 C#코드에 해당하는 Perl 코드:

$indexVal = 0;
if($string =~ /Index: (\d*)/){$indexVal = $1;}
도움이 되었습니까?

해결책

int indexVal = 0;
Regex re = new Regex(@"Index: (\d*)")
Match m = re.Match(s)

if(m.Success)
  indexVal = int.TryParse(m.Groups[1].toString());

저는 있는 그룹 번호를 잘못이지만,당신이 할 수 있어야 그림이 그것을 밖으로 여기에서이다.

다른 팁

나는 생각한 패트릭 박 이--에 대해 알아보려면 기억하라는 regex 그룹이 존재하는,그래서 당신은하지 않는 을 사용하여 배열 색인 번호입니다.

Regex.Match(s, @"Index (?<num>\d*)").Groups["num"].Value

내가 찾는 정규식이 조금 더 읽을 수 있는 이 방법뿐만 아니라,하지만 ...

당신이 원하는 활용하는 일치하는 그룹,그래서 그런 것 같...

Regex MagicRegex = new Regex(RegexExpressionString);
Match RegexMatch;
string CapturedResults;

RegexMatch = MagicRegex.Match(SourceDataString);
CapturedResults = RegexMatch.Groups[1].Value;

는 것

int indexVal = 0;
Regex re = new Regex(@"Index: (\d*)");
Match m = re.Match(s);

if (m.Success)
    indexVal = m.Groups[1].Index;

할 수도 있습니다 이름은 그룹(여기에 나는 또한 생략의 편집 regexp)

int indexVal = 0;
Match m2 = Regex.Match(s, @"Index: (?<myIndex>\d*)");

if (m2.Success)
    indexVal = m2.Groups["myIndex"].Index;
int indexVal = 0;
Regex re = new Regex.Match(s, @"(<?=Index: )(\d*)");

if(re.Success)
{
  indexVal = Convert.ToInt32(re.Value);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top