정규 표현 식 을 이용 하여 문자열 을 예제 코드 로 묶 습 니 다.
최근 작업 중 에 문제 가 발생 했 습 니 다.수 요 는'122333'과 같은 문자열 에 부 딪 혔 습 니 다.연 결 된 부분 을 꺼 내 서[1','22','333','<<<']과 같은 목록 을 얻 는 것 입 니 다.생각 나 는 일반적인 방법 으로 문자열 을 옮 겨 다 니 고 다음 하 나 는 이전 과 하나씩 비교 하 는 것 이 정말 귀 찮 습 니 다!또 다른 두 가지 방법 이 생각 났 습 니 다.더 이상 말 하지 않 겠 습 니 다.상세 한 예제 코드 를 살 펴 보 겠 습 니 다.
1.실제 적 으로 itertools 모듈 의 groupby()방법 으로 처리 할 수 있 습 니 다.
import itertools
Str = '122333<<<<'
Lst = []
for key,group in itertools.groupby(s):
Lst.append(list(group))
print map(lambda x: ''.join(x), Lst)
위의 처 리 는 비교적 기교 가 있 고 원 하 는 출력 결 과 를 얻 을 수 있다.['1', '22', '333', '<<<<']
2.하지만 좀 더 멋 있 고 기술적 인 처리 방식 은 정규 표현 식 으로 처리 합 니 다.
import re
Str = '122333<<<<'
Lst = []
Pat = re.compile(r'((.)\2*)')
Rst = [x[0] for x in re.findall(Pat, Str)]
print Rst
비고:1. (.) # .임의의 문자 일치;(.)그룹 을 나 누 어 뒤의 역방향 인용 을 편리 하 게 하 다.
2. \2* # \2.안에 괄호 의 역방향 참조;*대표 님 은 0 개 에서 여러 개 입 니 다.
3. ((.)\2*) # 연결 하면 하나 이상 의 문자 로 구 성 된 그룹 입 니 다.
4. (.)\1* # 이런 방식 은 유일한 값['1','2','3','<']을 추출 할 수 있다.마찬가지 로 매우 편리 하 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.