2016-09-19 2 views
-2

인덱스로 하위 문자열을 찾는 프로그램이 있습니다. 예를 들어 "Yes no yes no"에서 "no"를 검색하면 , 첫 번째 "no"의 문자 색인이 반환됩니다.모든 하위 문자열 인스턴스를 찾는 방법은 무엇입니까?

여러 건을 식별하고 싶습니다. 예를 들어 위의 예에서는 및 (다른 발생 색인)을 반환합니다.

+0

명확한 표현과 예. – Prune

답변

1

IndexOf에는이를 위해 사용할 수있는 오버로드 집합이 있습니다.

Dim str = "Yes No Yes No" 
    str.IndexOf("No", 6) 

이렇게하면 문자 6에서 검색을 시작합니다. 그러나 정규 표현식 대신 사용하려고합니다.

Dim regex As New System.Text.RegularExpressions.Regex("No") 
    For Each match As RegularExpressions.Match In regex.Matches(str) 
     Console.WriteLine("Match found @ {0}", match.Index) 
    Next 

규칙을 더 확장해야하는 경우 일치를 훨씬 더 잘 제어 할 수 있으며 IMO는 더 명확한 인터페이스를 제공합니다.

+0

와우 감사합니다. 이전에 사용하지 않았으므로 정규 표현식에 대한 연구를해야 할 것입니다. 고맙습니다. –

+1

http://www.regular-expressions.info/을 읽는 것이 좋겠지 만 http://regexr.com/과 연극을 통해 행동하는 모습을 볼 수도 있습니다. – FloatingKiwi