반응형
정규식을 기준으로 분할 문자열
표 형식의 명령 출력이 있습니다. 결과 파일 에서이 출력을 구문 분석하고 문자열에 저장합니다. 한 행의 각 요소는 하나 이상의 공백 문자로 구분되므로 정규식을 사용하여 하나 이상의 공백을 일치시키고 분할합니다. 그러나 모든 요소 사이에 공백이 삽입됩니다.
>>> str1="a b c d" # spaces are irregular
>>> str1
'a b c d'
>>> str2=re.split("( )+", str1)
>>> str2
['a', ' ', 'b', ' ', 'c', ' ', 'd'] # 1 space element between!!!
더 좋은 방법이 있습니까?
각 분할 후 str2
목록에 추가됩니다.
사용하여 (
, )
당신은 당신이 단순히 그들을 제거하면이 문제가되지 않습니다 그룹을 캡처.
>>> str1 = "a b c d"
>>> re.split(" +", str1)
['a', 'b', 'c', 'd']
그러나 정규 표현식이 필요 str.split
하지 않습니다. 구분 기호를 지정하지 않으면 공백으로 공백을 나눕니다. 이 경우 가장 좋은 방법입니다.
>>> str1.split()
['a', 'b', 'c', 'd']
정규식을 정말로 원한다면 이것을 사용할 수 있습니다 ( '\s'
공백을 나타내며 더 명확합니다).
>>> re.split("\s+", str1)
['a', 'b', 'c', 'd']
또는 공백이 아닌 모든 문자를 찾을 수 있습니다
>>> re.findall(r'\S+',str1)
['a', 'b', 'c', 'd']
이 str.split
방법은 항목 사이의 모든 공백을 자동으로 제거합니다.
>>> str1 = "a b c d"
>>> str1.split()
['a', 'b', 'c', 'd']
문서는 다음과 같습니다. http://docs.python.org/library/stdtypes.html#str.split
사용 re.split
하고 분할 패턴에 캡처 그룹이 포함 된 경우 그룹은 출력에 유지됩니다. 이를 원하지 않으면 대신 비 캡처 그룹을 사용하십시오.
실제로 매우 간단합니다. 이 시도:
str1="a b c d"
splitStr1 = str1.split()
print splitStr1
참고 URL : https://stackoverflow.com/questions/10974932/split-string-based-on-a-regular-expression
반응형
'programing tip' 카테고리의 다른 글
단일 객체 []를 params 객체에 전달하는 방법 [] (0) | 2020.07.17 |
---|---|
Javascript 생성자 속성의 중요성은 무엇입니까? (0) | 2020.07.17 |
시간대 자바 스크립트없이 날짜 구문 분석 (0) | 2020.07.17 |
모든 파이썬 클래스가 객체를 확장해야합니까? (0) | 2020.07.17 |
클래스 이름으로 DOM 요소 가져 오기 (0) | 2020.07.17 |