스포츠 게임의 결과를 표시하는 데 동일한 패턴을 포함하는 문자열 (이 예의 경우 HTML)이 있습니다. 따라서 HTML 태그는 알려져 있지만 각 게임의 값은 아닙니다.정규식 패턴 일치 결과 반환
펄, 우리는이 작업을 수행 할 수 있습니다이 경우, 자리 다양한 길이의 총 6 개 정수를 괄호 안의 숫자를 반환
if ($content =~ /\<\/a\>\<br\>(\d+)\<\/span\>\<br\>(\d+)\-(\d+).+\<\/a\>\<br\>(\d+)\<\/span\>\<br\>(\d+)\-(\d+)/) { $visitingTeamScore = $1; // $1 is the 1st matched digit $visitingTeamWins = $2; // $2 is the 2nd matched digit $visitingTeamLosses = $3; // Etc $homeTeamScore = $4; $homeTeamWins = $5; $homeTeamLosses = $6; }
합니다. 그런 다음 일치 항목을 변수에 할당 할 수 있습니다. 이 질문에 대한 답변에서
: Swift Get string between 2 strings in a string, 나는 다음과 같은 스위프트 코드가 있습니다
extension String {
func sliceFrom(start: String, to: String) -> String? {
return (rangeOfString(start)?.endIndex).flatMap { sInd in
(rangeOfString(to, range: sInd..<endIndex)?.startIndex).map { eInd in
substringWithRange(sInd..<eInd)
}
}
}
}
let firstMatch = content?.sliceFrom("</a><br>", to: "</span>") // The first integer in the string
문제는 그래서 </a\><br>
및 </span>
사이도 4의 정수를 얻는 경우에 온다 결과 일치가 다시 첫 번째 숫자가됩니다.
let newRawHTML = content![content!.startIndex.advancedBy(15)...content!.startIndex.advancedBy(5)]
또 다른 가능성에서 이미 일치하는 것을 제거하는 것입니다 :
나는 수동으로 문자를 (각 정수의 숫자가 다를 수 있기 때문에 어느 자체가 완벽한 과학이 아니다)과 같은 추한 뭔가를 셀 수 이 문자열은 이후 검색 할 때마다 짧아집니다 (구현 방법을 모르겠습니다). 어떻게해야할까요? Swift에서 경기를 "뽑아내는"방법이 있습니까?
NSRegularExpression에 관한 질문/답변과 기사를 읽었지만 사용법을 이해하지 못했습니다. 감사합니다. – Shades
정규 표현식에 사용할 Swift 와일드 카드 문자 목록을 어디에서 찾을 수 있습니까? – Shades
@Shades에 대해서는 [공식 참조]의 ** 정규 표현식 메타 문자 ** 및 ** 정규 표현식 연산자 ** 섹션 (https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSRegularExpression_Class)을 참조하십시오. /index.html#//apple_ref/doc/uid/TP40009708). – OOPer