를 사용하여 숫자 값을 분할 할 때 빈 문자열 값을 얻기 :이 같은 문자열 값으로 긴 목록이 정규식
:AB65
내가 숫자에서 문자를 분할하고 싶지만을 나는이 작업을 수행 할 때
re.split('([A-Z]+)([0-9]+)', 'AB65')
나는 빈 문자열 값으로 다음 얻을 :
['', 'AB', '65', '']
가 어떻게이 같은 값을받을 수 있나요 : [ ' AB ','65 '] 도와 주셔서 감사합니다.
를 사용하여 숫자 값을 분할 할 때 빈 문자열 값을 얻기 :이 같은 문자열 값으로 긴 목록이 정규식
:AB65
내가 숫자에서 문자를 분할하고 싶지만을 나는이 작업을 수행 할 때
re.split('([A-Z]+)([0-9]+)', 'AB65')
나는 빈 문자열 값으로 다음 얻을 :
['', 'AB', '65', '']
가 어떻게이 같은 값을받을 수 있나요 : [ ' AB ','65 '] 도와 주셔서 감사합니다.
re.split
은 사이에서 정규식과 일치합니다. 당신이 필요로하는 대신 re.findall
입니다 :
>>> re.findall('([A-Z]+)([0-9]+)', 'AB65')
[('AB', '65')]
이 아직하지 않습니다 잘 작동, 정규식은 전체 문자열 'AB65'
일치하고 두 캡처 그룹을 포함하기 때문이다. 그래서 우리는 중 하나 문자 또는 번호를 (그래서 |
으로 구분)과 일치하고, 비 캡처 그룹을 사용하는 정규식이 필요 (그래서 (?:…)
사용) : 사실
>>> re.findall('(?:[A-Z]+)|(?:[0-9]+)', 'AB65')
['AB', '65']
을,이 간단한 경우 , 괄호는 필요하지 않습니다 :
>>> re.findall('[A-Z]+|[0-9]+', 'AB65')
['AB', '65']
마지막으로 완벽하게 작동했습니다! – Danjiri
이 예제에서'.findall' 대신'.split'을 쓰는 이유는 무엇입니까? –
@JonClements 실제로 pandas str.split() 함수를 사용하고 있습니다. – Danjiri
언급할만한 가치가있어 ... 팬더에도'str.findall'이 있기 때문에 ... –