인덱스로 하위 문자열을 찾는 프로그램이 있습니다. 예를 들어 "Yes no yes no"에서 "no"를 검색하면 , 첫 번째 "no"의 문자 색인이 반환됩니다.모든 하위 문자열 인스턴스를 찾는 방법은 무엇입니까?
여러 건을 식별하고 싶습니다. 예를 들어 위의 예에서는 및 (다른 발생 색인)을 반환합니다.
인덱스로 하위 문자열을 찾는 프로그램이 있습니다. 예를 들어 "Yes no yes no"에서 "no"를 검색하면 , 첫 번째 "no"의 문자 색인이 반환됩니다.모든 하위 문자열 인스턴스를 찾는 방법은 무엇입니까?
여러 건을 식별하고 싶습니다. 예를 들어 위의 예에서는 및 (다른 발생 색인)을 반환합니다.
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는 더 명확한 인터페이스를 제공합니다.
와우 감사합니다. 이전에 사용하지 않았으므로 정규 표현식에 대한 연구를해야 할 것입니다. 고맙습니다. –
http://www.regular-expressions.info/을 읽는 것이 좋겠지 만 http://regexr.com/과 연극을 통해 행동하는 모습을 볼 수도 있습니다. – FloatingKiwi
명확한 표현과 예. – Prune