2012-07-28 2 views
0

일부 특정 요구 사항을 사용하여 내 DB에서 일부 문장을 구문 분석 (분할)해야합니다.PHP에서 정규 표현식으로 다양한 형식의 구문 분석

  1. COMPANY_NAME, CITY_NAME_1 (STREET_ADDRESS, ZIP_CODE CITY_NAME_2) : 이 문장 형식의 다른 유형을 가질 수 있습니다, 내 문장의 80 %는 다음 형식 중 하나를 가지고있다. ANY_STRING
  2. COMPANY_NAME, CITY_NAME_1, STREET_ADDRESS, ZIP_CODE CITY_NAME_2. ANY_STRING
  3. COMPANY_NAME, CITY_NAME_1, STREET_ADDRESS, ZIP_CODE CITY_NAME_2, (ANY_STRING : ANY_STRING.). ANY_STRING
  4. COMPANY_NAME (ANY_STRING), CITY_NAME_1, STREET_ADDRESS, ZIP_CODE CITY_NAME_2 여기

ANY_STRING, 내가 규칙을 지정한 :

  • COMPANY_NAME 공백을 가질 수 hyphons (-), 점. 쉼표를 가질 수 없습니다
  • COMPANY_NAME는
  • CITY_NAME_1을 breakets 및 CITY_NAME_2 공간을 가질 수 있습니다, 슬래시, breakets는
  • CITY_NAME_1 및 CITY_NAME_2 쉼표
  • CITY_NAME_1 및 CITY_NAME_2이 경우 95 %의 동일 가질 수 있지만 입니다 경우 5 %
  • STREET_ADDRESS 다른 아무것도 (쉼표, breaket, 특별한 의 charcter 등)
  • ZIP_CODE 이미 저 (A 4, 5 또는 6 자리 숫자 문자열)로 알려져을 가질 수 있습니다.

이미 각 문장의 우편 번호가 나와 함께 있습니다. 그리고 문장과 우편 번호를 입력으로 받아 거리 이름을 출력으로 가져 오는 정규식이나 함수를 만들고 싶습니다.

소스 중 위의 방법 각각에 대해 다르게 함수를 만들 수 있습니다. 그러나 주어진 문장이 어떤 형식에 맞는 지 어떻게 알 수 있습니까? 이것을 정규식으로 알 수 있습니까?

+2

[fgetcsv] (http://php.net/manual/en/function.fgetcsv.php)를 사용하여 [CSV] (http://en.wikipedia.org/wiki/Comma-separated_values)로 분석하십시오.) – MrBassam

+0

해봤습니까? 'explode (',', $ sentence);를 사용하는 것은 어떻습니까? –

+0

예, 나는 이미 explode 등의 PHP 함수를 사용해 보았습니다. 그러나 나는 또한 정규 표현식과 함께 가고 싶습니다. 내가 정규식으로 가고 싶은 이유는이 포맷이 미래에 더 추가 될 수 있다는 것입니다. 그래서 그 당시에는 새로운 형식을 추가하기 위해 하나의 정규 표현식 만 작성해야했습니다. 나는 전체 대본을 바꾸면 안된다. 그래서 제발 좀 정규 표현식을 제안하십시오. 감사. –

답변

0

먼저 문자열의 유형 (구분 방법)을 정의해야합니다. 부터 preg_match()까지. regexp은 우선이 상황에 다소 복잡해 보입니다. 우리에게는 데이터가 없습니다.

http://myregexp.com/ - regexp을 작성하는 데 도움이됩니다.

관련 문제