이 프로그램에서는 "I = 23mm"또는 "H = 4V"와 같은 표현이 있고 23을 추출하려고합니다. 또는 4) 그것을 밖으로, 그래서 정수로 설정할 수 있습니다.1 단어 문자열에서 숫자 추출
나는 계속해서 문제가되는 것은 숫자를 빼내려는 표현이 1 단어이므로 split() 또는 아무것도 사용할 수 없다는 것입니다.
한 예로 나는 보았다하지만 wouldnt하는 작업이었다 -
I="I=2.7A"
[int(s) for s in I.split() if s.isdigit()]
그것은 단지 숫자가 공백으로 구분되어 있습니다 걸리기 때문에이 작업을 wouldnt. int078vert라는 단어에 숫자가 있으면 추출하지 않겠습니다. 또한, 광산 doesnt에는 한계를 정할 공간이 있습니다.
나는이처럼 보였다 하나,re.findall("\d+.\d+", "Amps= 1.4 I")
을 시도했지만 전달되는 숫자는 항상 2 개 자리가 아니기 때문에 그것은 하나가 작동 didnt한다. 그것은 5와 같거나 13.6과 같을 수 있습니다.
어떤 코드 내가 그렇게 작성해야 할 것을 나는I="I=2.4A"
또는
내가이 문자열에서 단지 수를 추출 할 수 있도록I="A=3V"
와 같은 문자열을 전달하면? (그리고 그것에 대한 작업을합니까?) 내가 구분할 수있는 공백이나 다른 상수 문자는 없습니다.
그것은 당신처럼 보이는
덧붙여가, 여기가 제공 한 RE의 고장입니다 정수 및 십진수 모두에 대해이 문제를 해결하려고합니다. 각 문자열에는 항상 정확히 하나의 숫자가 포함됩니까? – yoozer8
예. 각 문자열은 항상 1 개의 숫자를 갖지만 해당 숫자를 만들기 위해 여러 개의 소수를 가질 수 있습니다. – Kyle