두 가지 옵션을 먼저 평가해 봅시다.
옵션 1 :
당신은 문자열로 임시 ID를 검색하고 분할 기능의 당신의 delimiter.The 구문으로 콜론을 분할해야는
str.split(str="", num=string.count(str)).
기본 구분 기호 공간입니다. 이 방법의 문제점은 python 스크립트에서 각 tempid가 검색 가능한 모든 값을 가리키는 매핑을 만들어야한다는 것입니다.이 접근법의 장점은 데이터베이스의 임시 ID와 같은 중복 데이터를 피할 수 있다는 것입니다. 정규화를 사용할 수도 있지만 데이터를 구성하고 더 잘 구성하십시오.
옵션 2 :
심지어 아니지만 최적의 방법으로 당신의 요구 사항을 구현하는 간단한 방법입니다.
옵션 3 :
를 사용하여 일반 expressions.Check이.
#!/usr/bin/python
import re
txt='30:24:33:55:60'
re1='(\\d)'
re2='(\\d)'
re3='.*?'
re4='(\\d)'
re5='(\\d)'
re6='.*?'
re7='(\\d)'
re8='(\\d)'
re9='.*?'
re10='(\\d)'
re11='(\\d)'
re12='.*?'
re13='(\\d)'
re14='(\\d)'
rg = re.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9+re10+re11+re12+re13+re14,re.IGNORECASE|re.DOTALL)
m = rg.search(txt)
if m:
d1=m.group(1)
d2=m.group(2)
d3=m.group(3)
d4=m.group(4)
d5=m.group(5)
d6=m.group(6)
d7=m.group(7)
d8=m.group(8)
d9=m.group(9)
d10=m.group(10)
print "("+d1+")"+"("+d2+")"+"("+d3+")"+"("+d4+")"+"("+d5+")"+"("+d6+")"+"("+d7+")"+"("+d8+")"+"("+d9+")"+"("+d10+")"+"\n"
Output: (3) (0) (2) (4) (3) (3) (5) (5) (6) (0)
당신은 괄호를 제거하고 2-2 자리 숫자로 문자열을 분할하고 structure.Constraint 일반 expression.This 쓰기 어렵다 테이블을 변경할 필요가 없습니다 귀하의 queries.Advantage에서 사용할 수있는 것은 최적입니다 목표를 달성하는 방법.
옵션 4 : MySQL의 query.The 문제에
를 사용하여 정규 표현식은 MySQL의 정규 표현식은 POSIX 표준을 사용하고 난 당신이 같은 일부 교체를해야이 표준에 위의 준 정규 표현식을 변환하는 것입니다 // D 숫자 또는 [0-9]와 *? ^와 나에 대한 수치심을 인식하지 못하는 몇 가지 사항이 있지만 이러한 유형의 실행은 특히 색인 생성을 사용할 때 쿼리 성능을 향상시킬 것입니다.
이들은 두 가지 매우 다른 접근 방식입니다. 세 번째 옵션은'TempString'의 값을 분할하여 같은 테이블의 열을 분리하는 것입니다. – vhu
파이썬 문자열 파싱을하는 것이 가장 좋다. –
@vhu, value count가 다를 수 있으므로 예측할 수 없다. 그래서 같은 테이블에 열을 만드는 것은 좋지 않다. –