해야이 하나
import re
line = " A= 4 | B='567' |c=4|D='aaa' "
re.search('(?P<field1>.*)=(?P<value1>.*)\|(?P<field2>.*)=(?P<value2>.*)\|(?P<field3>.*)=(?P<value3>.*)\|(?P<field4>.*)=(?P<value4>.*)', line).groups()
출력 :
(' A', ' 4 ', ' B', "'567' ", 'c', '4', 'D', "'aaa' ")
당신은 또한 대신 * \는 S 사용해 볼 수 있습니다 귀하의 필드와 값이 할 *합니다. 공백을 포함하지 않습니다.
re.search('(?P<field1>\S*)\s*=\s*(?P<value1>\S*)\s*\|\s*(?P<field2>\S*)\s*=\s*(?P<value2>\S*)\s*\|\s*(?P<field3>\S*)\s*=\s*(?P<value3>\S*)\s*\|\s*(?P<field4>\S*)\s*=\s*(?P<value4>\S*)', line).groupdict()
출력 :
{'field1': 'A',
'field2': 'B',
'field3': 'c',
'field4': 'D',
'value1': '4',
'value2': "'567'",
'value3': '4',
'value4': "'aaa'"
}
이 생성됩니다 관련 그룹 :
이
[ re.search('\s*([^=]+?)\s*=\s*(\S+)', group).groups() for group in re.findall('([^=|]*\s*=\s*[^|]*)', line) ]
출력 :
[('A', '4'), ('B', "'567'"), ('c', '4'), ('D', "'aaa'")]
그것이 도움이 되나요이 출력에서 공백을 제거 할 것인가?
문자열에 따옴표 또는 | 표? –
A = 4 | B = '567'| c = 4 | D = 'aaa' – james
데이터를 다시 만들었습니다. A = 4 | B = '567'| c = 4 | D = 'aaa'내가 줄 단위로 읽는 파일에 – james