2009-04-13 3 views
4

특히, 여러 줄 모드를 사용할 수 있도록 패턴 문자열에 포함 된 옵션을 지정할 수 있는지 알고 싶습니다. 즉 파이썬 정규 표현식의 여러 모드가 다음과 같이 사용할 수 있습니다 일반적으로이다 : 나는 패턴 문자열에 지정하기보다는 re.MULTILINE 옵션을 사용하여 여러 일치를 얻을 수있는 방법을 싶습니다파이썬 정규식은 내장 된 옵션을 허용합니까?

pattern = re.compile(r'foo', re.MULTILINE) 

. 임베디드 (? m) 식으로 Java에서이 작업을 수행 할 수 있습니다. 예 :

pattern = re.compile(r'(?m)foo') 

이 방법은 Python에서 가능합니까, 아니면 re.M 옵션을 사용해야합니까? 그리고 일반적으로 파이썬에서 임베디드 패턴 옵션에 대한 좋은 참조가 있습니까?

답변

6

예. docs 가입일

: 세트 '나' 'L', 'M', 'S', 'U', 'X'로부터

(?iLmsux) (하나 이상의 문자.)

그룹 은 빈 문자열과 일치합니다. , re.I (케이스 무시), re.L (종속 로케일 ) re.M (다중 선), re.S (도트 모두 일치) re.U (유니 종속) 및 re.X (세부) 문자 해당 플래그를 설정할 전체 정규 표현식. 합니다 ( 플래그는 Module Contents에 설명되어 있습니다.)

당신이 정규 표현식의 일부로 플래그를 포함 를하려는 경우에 유용 대신 compile() 함수에 플래그 인수를 전달하는.

(?x) 플래그가 표현식이 구문 분석되는 방법을 변경 함을 유의하십시오. 표현식 문자열에서 이 먼저 사용되어야합니다. 또는 하나 이상의 공백 문자 뒤에 사용해야합니다. 플래그 앞에 공백이 아닌 문자가있는 경우 결과는 정의되지 않습니다.