파이썬 3 : 문자열 (방정식)이 주어지면 양수 및 음수 목록을 반환하십시오. 다양한 정규식 및 목록 이해 솔루션을 사용해 보았습니다. 수학 식 4 + 또는 -5 3X + 2Y 또는 -7y-배 반환 감안파이썬 : 문자열의 양수 및 음수를 필터링하십시오.
[4,3], [-5,2], [-8, -2]
입력
str = '-7y-2x'
출력
my_list = [-7, -2]
파이썬 3 : 문자열 (방정식)이 주어지면 양수 및 음수 목록을 반환하십시오. 다양한 정규식 및 목록 이해 솔루션을 사용해 보았습니다. 수학 식 4 + 또는 -5 3X + 2Y 또는 -7y-배 반환 감안파이썬 : 문자열의 양수 및 음수를 필터링하십시오.
[4,3], [-5,2], [-8, -2]
입력
str = '-7y-2x'
출력
my_list = [-7, -2]
간단한 솔루션 사용 re.findall 기능 :
출력
import re
s = '-5+2y'
result = [int(d) for d in re.findall(r'-?\d+', s)]
print(result)
:
[-5, 2]
-?\d+
이 - 양 및 음의 정수
원시 문자열 표기법 (
r"text"
)은 정규 표현식을 그대로 유지합니다. 있을 것입니다 정규 표현식에서없이 , 모든 백 슬래시 ('\
')는이
이것은 작동합니다. 내가 re.split() 이전과 훨씬 더 긴 정규식을 시도했다. 그래서 - 선택 사항이며 숫자는 그렇지 않습니다. 'r'은 무엇인가? –
@JamesGoldstein, * 원시 문자열 표기법 (** r "text"**)은 정규 표현식을 제로로 유지합니다. 그것 없이는 정규 표현식의 모든 백 슬래시 ('\')에 접두사를 붙이면 이스케이프 처리됩니다. * – RomanPerekhrest
이 정규식가 문제를 해결해야한다.
[\+\-]?[0-9]+
또한 다음과 같은 코드가 있습니다.
import re
regex = re.compile(r'[\+\-]?[0-9]+')
nums = [int(k) for k in regex.findall('5-21x')]
A [mcve] 최신 시도의 제공 및 코드를 참조하여 설명해주십시오 탈출 다른 접두어로하는 무엇을 문제가 있습니다. – idjaw
이 질문에 왜 많은 downvotes가 있었는지 이해할 수 없습니다. 네, 영업 이익은 그의 노력을 보여주지 못했지만, 적어도 그는 투입량과 예상 생산량을 보여 주었고 작업은 매우 간단합니다 – RomanPerekhrest