Qt 5.0 정규 표현 식 QRegularExpression 사용
먼저 코드 를 올 리 고 뒤에 함수 소개:
QRegularExpression regularExpression(pattern);
int index = 0;
QRegularExpressionMatch match;
do {
match = regularExpression.match(testStr, index);
if(match.hasMatch()) {
index = match.capturedEnd();
qDebug()<
1.QRegExp 와 의 주요 용법 차이
QRegExp 의 일치 결 과 는 QRegExp 대상 자체 에 저 장 됩 니 다.
QString QRegExp::cap(int nth = 0) const;
한편,QRegularExpression 류 는 검색 에 만 사용 되 고 검색 결 과 를 단일 하 게 열거 하여 QRegularExpressionMatch 가 됩 니 다.
QString QRegularExpressionMatch::captured(int nth = 0) const;
추측:이래 로 QRegularExpression 검색 의 부담 이 줄 어 들 고 효율 이 높아진다.
함수 소개
1.match() 일치:
QRegularExpressionMatch match(const QString &subject,
int offset = 0,
MatchType matchType = NormalMatch,
MatchOptions matchOptions = NoMatchOption) const;
subject 일치 하 는 대상 문자열;
offset 오프셋,시작 위치 일치;
MatchType 일치 하 는 형식;
MatchOption 일치 옵션;
값 이 일치 하 는 결과 대상 되 돌리 기;
2. 일치 하 는 주요 결과:
QString captured(int nth = 0) const;
int capturedStart(int nth = 0) const;
int capturedLength(int nth = 0) const;
int capturedEnd(int nth = 0) const;
일치 하 는 문자열,일치 하 는 문자열 의 시작 점,길이,끝 입 니 다.
메모:매개 매 칭 세그먼트(정규 표현 식 의 모든 괄호)의 문자열 과 길이,시작 점 을 가 져 올 수 있 는 매개 변 수 를 가 져 옵 니 다.
captured()함 수 는 QRegExp::cap()와 기본적으로 일치 하지만 세 개의 함 수 를 추가 하여 매 칭 세그먼트 의 위 치 를 되 돌려 줍 니 다.
예 를 들 어 정규 pattern 은'(\\w+)(\\\d+)'이다.
match.captured()는 정규 일치 결 과 를 가 져 옵 니 다.결 성 된 매개 변 수 는 0 입 니 다.
match.captured(1)는 일치 하 는 결 과 를 가 져 오고 알파벳 을 되 돌려 줍 니 다.
match.captured Start(1)전체 문자열 의 시작 위치 에 이 알파벳 가 져 오기;
match.captured(2)는 일치 하 는 결 과 를 가 져 오고 숫자 를 되 돌려 줍 니 다.
match.captured End(2)이 알파벳 을 전체 문자열 의 끝 위치 에 가 져 옵 니 다.
3. captureEnd()
int QRegularExpressionMatch::capturedEnd(int nth = 0) const;
QRegExp 는 반복 해서 일치 하 는 문자열 의 길이 와 일치 하 는 위치 만 얻 을 수 있 습 니 다.다음 순환 의 일치 기점 은 수 동 으로 처리 해 야 합 니 다(추가):
int pos = 0;
while ((pos = rx.indexIn(trl , pos)) != -1)
{
pos += rx.matchedLength();
qDebug() << rx.cap();
}
현재 QRegularExpression 은 match.captureEnd()로 다음 에 옮 겨 다 니 는 시작 검색 위치 로 값 을 되 돌려 줍 니 다.
4.capturedTexts()
QStringList capturedTexts() const;
Patern 에 있 는 순서대로 각 매 칭 세그먼트 의 QStringList 를 되 돌려 줍 니 다.
즉,captured(1),captured(2),captured(3),등 모든 일치 세그먼트 결과 의 QStringList 입 니 다.
5.lastCapturedIndex()
마지막 일치 세그먼트 의 색인,즉 모든 일치 세그먼트 의 수량;
QRegularExpressionMatch match = re.match(string);
for (int i = 0; i <= match.lastCapturedIndex(); ++i) {
QString captured = match.captured(i);
// ...
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정규 표현 식 자바 와 js 의 차이정규 표현 식 으로 핸드폰 번 호 를 검증 합 니 다. //핸드폰 번호 형식 if (!mobile.matches("1([3-9])(\\d{9})")) { //전의 문자 가 하나 더 생 겼 습 니 다. 그러...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.