2010-05-28 3 views
0

이 코드는 이메일을 구문 분석하는 데 사용되며, mySQL 데이터베이스에 테이블로 저장된다. PHP 코드라고 생각합니다. (.+)의 기능은 무엇입니까?누구나 나를 해독 할 수 있습니까? PHP (나는 생각한다)

/A new order has been successfully placed through(.+)Name:(.+)Company:(.+)Email:(.+)Address 1(.+)Order ID:(.+)Date:(.+)Payment Type:(.+)Order Status:(\s*)Accepted(.*)\n(.+)\$([\d\.]+)\s+X/si 

감사합니다. 훌륭한 brainiacs!

+0

정규식처럼 보입니다. (. +)는 적어도 한 번 모든 문자를 찾습니다. 나는 다른 누군가가 적절한 대답을 게시 할 때까지 기다릴 것이다. – Blorgbeard

+0

내가 마지막으로 본 John Hughes 영화 이후로 brainiac이라는 용어를 듣지 못했습니다. – gtd

답변

6

정규 표현식 일치처럼 보입니다. (.+) 부분은 '와일드 카드'캡처입니다.

문자열에 대해 실행할 수 있으며 필요한 정보를 추출 할 수 있습니다. 대부분의 경우이 문자열은 언어와 관련이 없습니다.

그냥 몇 가지 참고 사항 : 최종 수단 '의 경우 insensitve'및 '에서

/si. 모든 '일치 (수단입니다. \ n을 포함하여 모든 (일치하는 것이 일반적으로하지 않습니다))

캡처 ((.+)) #이를 주문 (.+)이다 (평균 정규식 사용 가능 언어로 $#으로 일치 한 후 참조 할 수 있습니다 당신은 예를 들어 귀하의 질문을 업데이 트했습니다 섹션 Name:(.+)Company:(.+)이 '일부 임의의 문자 세트'및 '좀 더 임의의 문자가'변수로 추출 Name:Some random set of characters Company: Some more random characters 일치합니다 $1과 :.

편집하여 정규식 문자열에 나타납니다 $2 (정규식 순서에서 첫 번째와 두 번째이므로)

2

그건 정규식 패턴입니다. 관련 PHP 문서는 여기에서 시작합니다. PCRE (Perl-Compatible Regular Expression) Introduction

.+은 "모든 문자, 한 번 이상"의 자리 표시 자입니다. 주위의 괄호는 그 자리 표시 자와 일치하는 항목을 "캡처"하므로 나중에 (데이터베이스에 저장하기 위해) 사용할 수 있습니다.

1

정규 표현식 인 (.+)은 모든 문자를 한 번 또는 여러 번 일치시키는 것을 의미합니다. 간편한 참조는 here을, 정규 표현식을 테스트하는 도구는 here을 참조하십시오.

1

'Name', 'Company'등의 하위 문자열이 실제로 유효하다는 것을 확인하는 더티 정규식 인 것 같습니다. 실제로 각 '필드'의 값을 잡을 수있는 (. +) 패턴입니다. 여기에서이 하위 문자열 주위의 모든 것을 포착합니다.

PHP 함수 ereg()에 대한 인수라고 생각합니다.

0

와일드 카드 문자. 그것. 단일 문자를 의미하고 +는 지정된 문자의 조합을 의미합니다. [a-zA-Z +]는 a-z A-Z와 [a-z +]의 문자 조합을 의미합니다. a-z 뒤의 한 문자를 의미합니다.

+0

나는 당신이'[a-zA-Z] +'와'[a-z] +'를 의미했다고 생각한다. –

+0

예, ([a-zA-Z] +) – Rahul

0

(. +)는 PCRE (정규 표현식)로 작성된 와일드 카드입니다.

관련 문제