iOS / swift 정규 표현 식
코드
설명 하 다.
.
줄 바 꿈 자 를 제외 한 임의의 문자 와 일치 합 니 다.
\w
알파벳 이나 숫자 또는 밑줄 또는 한자 일치
\s
임의의 공백 문자 일치
\d
일치 하 는 숫자
\b
단어의 시작 이나 끝 과 일치 합 니 다.
^
일치 하 는 문자열 의 시작
$
일치 하 는 문자열 의 끝
예 를 들 어 하나의 배열 이 있 을 때 우 리 는 그 중에서 우리 가 필요 로 하 는 요소 (중국) 가 있 는 지 찾 아야 한다. 이 표현 식 을 사용 하지 않 을 때 우 리 는 먼저 데 이 터 를 캡 처 한 다음 에 우리 가 원 하 는 내용 이 있 는 지 확인 할 수 있다.
NSString *targetStr = @" ";
NSString *nstring = @" , , , , ";
NSArray *array = [nstring componentsSeparatedByString:@","];
for (int i = 0; i < [array count]; i++) {
if ([targetStr isEqualToString: [array objectAtIndex:i]]){
NSLog(@" ")
};
}
그러면 정규 표현 식 에서 (\ \ oc 에서 전의 부호 이기 때문에 \ \ b 는 \ \ b 로 써 야 합 니 다)
NSString *nstring = @" , , , , , , ";
//
NSString *pattern = @"\\b \\b";
NSRegularExpression *regular = [[NSRegularExpression alloc]initWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *results = [regular matchesInString:nstring options:0 range:NSMakeRange(0, nstring.length)];
//
NSLog(@" %ld ",results.count);
for (NSTextCheckingResult *result in results) {
NSLog(@"%@",[nstring substringWithRange:result.range]);
}
swift 에서 의 쓰기
let nstring = " , , , , , , ";
//
let pattern = "\\b \\b";
let regular = try! NSRegularExpression(pattern: pattern, options:.CaseInsensitive)
let results = regular.matchesInString(nstring, options: .ReportProgress , range: NSMakeRange(0, nstring.characters.count))
//
print(" \(results.count) ")
for result in results {
print((nstring as NSString).substringWithRange(result.range))
물론 정규 표현 식 의 역할 은 매우 강력 합 니 다. 사용자 의 암호 가 알파벳 으로 시작 되 는 지, 우리 의 요구 에 부합 되 는 지 (암호 자릿수, 조합 등) 를 설정 하고 네트워크 주소 IP 를 캡 처 할 때 정규 표현 식 몇 줄 코드 를 사용 하여 판단 할 수 있 습 니 다. 그렇게 구리 고 긴 if 문 구 를 쓰 지 않 아 도 됩 니 다.
자주 사용 하 는 정규 표현 식: 인터넷 을 검색 해 보 니 많은 것 이 틀 렸 습 니 다. 특히 IP 판단 등........................................................................
기타 상용 문법: 표 2. 상용 한정 부호
코드 / 문법
설명 하 다.
*
0 회 혹은 그 이상 반복
+
한 번 혹은 더 여러 번 반복 하 다
?
0 회 혹은 1 회 반복
{n}
반복 n 회
{n,}
n 회 혹은 그 이상 반복
{n,m}
n ~ m 회 반복
표 3. 자주 사용 하 는 반 의 코드
코드 / 문법
설명 하 다.
\W
알파벳, 숫자, 밑줄, 한자 가 아 닌 문자 와 일치 합 니 다.
\S
공백 문자 가 아 닌 임의의 문자 와 일치 합 니 다.
\D
임의의 비 숫자 문자 와 일치 합 니 다.
\B
단어 시작 이나 끝 이 아 닌 위치 와 일치 합 니 다.
[^x]
x 를 제외 한 임의의 문자 와 일치 합 니 다.
[^aeiou]
aeiou 라 는 알파벳 을 제외 한 임의의 문자 와 일치 합 니 다.
표 4. 그룹 문법
분류 하 다.
코드 / 문법
설명 하 다.
포획 하 다.
(exp)
exp 와 일치 하고 자동 으로 이름 이 붙 은 그룹 에 텍스트 를 캡 처 합 니 다.
포획 하 다.
(?exp)
exp 와 일치 하고 이름 이 name 인 그룹 에 텍스트 를 캡 처 할 수도 있 습 니 다. (? 'name' exp)
포획 하 다.
(?:exp)
exp 와 일치 합 니 다. 일치 하 는 텍스트 를 캡 처 하지 않 고 이 그룹 에 그룹 번 호 를 할당 하지 않 습 니 다.
너그러이 단언 하 다
(?=exp)
exp 앞 위치 일치
너그러이 단언 하 다
(?<=exp)
exp 뒤의 위치 와 일치 합 니 다.
너그러이 단언 하 다
(?!exp)
뒤에 있 는 것 과 일치 하 는 것 은 exp 의 위치 가 아 닙 니 다.
너그러이 단언 하 다
(?
앞 에 exp 가 아 닌 위치 와 일치 합 니 다.
주석
(?#comment)
이러한 유형의 그룹 은 정규 표현 식 의 처리 에 영향 을 주지 않 고 주석 을 제공 하여 읽 을 수 있 도록 합 니 다.
표 5. 게 으 름 한정 부적
코드 / 문법
설명 하 다.
*?
임 의 반복 은 가능 한 한 적 게 하 라.
+?
한 번 또는 더 여러 번 반복 하지만 가능 한 한 적 게 반복 하 세 요.
??
0 회 또는 1 회 반복 하지만 가능 한 한 적 게 반복 합 니 다.
{n,m}?
n 에서 m 회 반복 하지만 가능 한 한 적 게 반복 합 니 다.
{n,}?
n 회 이상 반복 되 지만 가능 한 한 적 게 반복 합 니 다.
표 6. 자주 사용 하 는 처리 옵션
명칭.
설명 하 다.
무시 케이스 (대소 문자 무시)
일치 할 때 대소 문 자 를 구분 하지 않 습 니 다.
멀 티 라인 (멀 티 라인 모드)
^ 와 $의 의 미 를 변경 합 니 다. 모든 문자열 의 시작 과 끝 이 일치 하 는 것 이 아니 라, 각각 한 줄 의 첫 줄 과 끝 에 일치 하도록 합 니 다. (이 모드 에서 $의 정확 한 의 미 는 이전 위치 와 문자열 이 끝나 기 전의 위치 와 일치 합 니 다.)
싱글 라인 (단일 줄 모드)
모든 문자 와 일치 하도록 의 미 를 변경 합 니 다 (줄 바 꿈 포함).
IgnorePatternWhitespace (공백 무시)
표현 식 의 비 전의 공백 을 무시 하고 \ # 표 시 된 설명 을 사용 합 니 다.
명시 적 캡 처 (명시 적 캡 처)
표시 되 어 있 는 그룹 만 캡 처 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.