위키 텍스트 템플릿의 Python 정규식

Arnaugir

다음과 같은 형식의 위키 텍스트 템플릿에서 Python으로 줄 바꿈을 제거하려고합니다.

{{cite web
|title=Testing
|url=Testing
|editor=Testing
}}

re.sub로 다음 정보를 얻어야합니다.

{{cite web|title=Testing|url=Testing|editor=Testing}}

몇 시간 동안 Python 정규식을 사용해 왔지만 성공하지 못했습니다. 예를 들어 시도했습니다.

while(re.search(r'\{cite web(.*?)([\r\n]+)(.*?)\}\}')):
     textmodif=re.sub(r'\{cite web(.*?)([\r\n]+)(.*?)\}\}', r'{cite web\1\3}}', textmodif,re.DOTALL)

그러나 예상대로 작동하지 않습니다 (while 루프가 없어도 첫 줄 바꿈에서는 작동하지 않습니다).

비슷한 질문을 찾았지만 도움이되지 않았습니다 . Regex for MediaWiki wikitext templates . 저는 Python을 처음 접했기 때문에 너무 열심히하지 마세요 :-)

미리 감사드립니다.

Martijn Pieters

에 대한 개행 일치를 켜야합니다 .. 그렇지 않으면 개행과 일치 하지 않습니다 .

re.search(r'\{cite web(.*?)([\r\n]+)(.*?)\}\}', inputtext, flags=re.DOTALL)

일치하려는 텍스트 전체에 여러 개의 줄 바꿈이 있으므로 한 세트의 연속 된 줄 바꿈 만 일치시키는 것으로는 충분하지 않습니다.

로부터 re.DOTALL문서 :

'.'특수 문자를 개행 문자를 포함하여 모든 문자와 일치 시키십시오 . 이 플래그가 없으면 개행을 제외한'.' 모든 항목과 일치 합니다.

한 번의 re.sub()호출을 사용 cite하여 루프없이 스탠자 내의 모든 줄 바꿈을 한 번 에 제거 할 수 있습니다 .

re.sub(r'\{cite web.*?[\r\n]+.*?\}\}', lambda m: re.sub('\s*[\r\n]\s*', '', m.group(0)), inputtext, flags=re.DOTALL)

이것은 중첩 된 정규식을 사용하여 일치하는 텍스트에서 하나 이상의 개행 문자가있는 모든 공백을 제거합니다.

데모:

>>> import re
>>> inputtext = '''\
... {{cite web
... |title=Testing
... |url=Testing
... |editor=Testing
... }}
... '''
>>> re.search(r'\{cite web(.*?)([\r\n]+)(.*?)\}\}', inputtext, flags=re.DOTALL)
<_sre.SRE_Match object at 0x10f335458>
>>> re.sub(r'\{cite web.*?[\r\n]+.*?\}\}', lambda m: re.sub('\s*[\r\n]\s*', '', m.group(0)), inputtext, flags=re.DOTALL)
'{{cite web|title=Testing|url=Testing|editor=Testing}}\n'

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

텍스트 파일의 Python 정규식

분류에서Dev

템플릿의 Django 텍스트 서식

분류에서Dev

HTML 텍스트 형식화를위한 Java의 정규식

분류에서Dev

ngx 형식의 사용자 지정 템플릿 단위 테스트

분류에서Dev

Python 정규식 텍스트의 일부로 단어 찾기

분류에서Dev

텍스트의 첫 줄을 제거하기위한 정규식

분류에서Dev

태그 뒤의 텍스트 일치를위한 정규식

분류에서Dev

Powerpoint (2016)에서 텍스트 상자 템플릿 정의

분류에서Dev

템플릿 매개 변수를 지정하지 않고 클래스 템플릿 범위의 열거 형 사용

분류에서Dev

템플릿 클래스에서 템플릿 메서드의 정수 범위 기반 전문화

분류에서Dev

정규식을 사용하여 키워드 내부의 텍스트 캡처

분류에서Dev

쉼표 사이의 텍스트를 일치시키는 정규식

분류에서Dev

괄호 안의 선택적 텍스트와 텍스트를 일치시키는 정규 표현식

분류에서Dev

일부 패턴 사이의 텍스트를 제거하는 Python 정규식

분류에서Dev

태그간에 각 텍스트를 분할하는 Python의 정규식

분류에서Dev

텍스트의 정규 표현식을 사용한 Python 목록 이해

분류에서Dev

텍스트 영역의 Javascript 정규식

분류에서Dev

단어 뒤의 정규식 텍스트

분류에서Dev

OCR 및 특정 하위 문자열 다음에 오는 텍스트 추출-Python을 사용하는 정규식

분류에서Dev

XML 스키마의 정규식

분류에서Dev

두 텍스트 사이의 텍스트에 대한 정규식

분류에서Dev

Groupby 및 Python의 텍스트 템플릿에 데이터 채우기

분류에서Dev

정규식의 템플릿 문자열

분류에서Dev

테이블 형식 데이터를위한 대용량 텍스트 파일의 Pythonic 정규식

분류에서Dev

Play Framework 2.3의 템플릿 양식 텍스트 상자 유효성 검사

분류에서Dev

Python 정규식이 텍스트를 인식하지 못함

분류에서Dev

이 텍스트의 변형을 일치시키기 위해 이러한 정규식을 어떻게 결합합니까?

분류에서Dev

Kendo UI 템플릿에서 숫자 텍스트 상자의 최소값 설정

분류에서Dev

정보 추출을위한 부스트의 정규 표현식

Related 관련 기사

  1. 1

    텍스트 파일의 Python 정규식

  2. 2

    템플릿의 Django 텍스트 서식

  3. 3

    HTML 텍스트 형식화를위한 Java의 정규식

  4. 4

    ngx 형식의 사용자 지정 템플릿 단위 테스트

  5. 5

    Python 정규식 텍스트의 일부로 단어 찾기

  6. 6

    텍스트의 첫 줄을 제거하기위한 정규식

  7. 7

    태그 뒤의 텍스트 일치를위한 정규식

  8. 8

    Powerpoint (2016)에서 텍스트 상자 템플릿 정의

  9. 9

    템플릿 매개 변수를 지정하지 않고 클래스 템플릿 범위의 열거 형 사용

  10. 10

    템플릿 클래스에서 템플릿 메서드의 정수 범위 기반 전문화

  11. 11

    정규식을 사용하여 키워드 내부의 텍스트 캡처

  12. 12

    쉼표 사이의 텍스트를 일치시키는 정규식

  13. 13

    괄호 안의 선택적 텍스트와 텍스트를 일치시키는 정규 표현식

  14. 14

    일부 패턴 사이의 텍스트를 제거하는 Python 정규식

  15. 15

    태그간에 각 텍스트를 분할하는 Python의 정규식

  16. 16

    텍스트의 정규 표현식을 사용한 Python 목록 이해

  17. 17

    텍스트 영역의 Javascript 정규식

  18. 18

    단어 뒤의 정규식 텍스트

  19. 19

    OCR 및 특정 하위 문자열 다음에 오는 텍스트 추출-Python을 사용하는 정규식

  20. 20

    XML 스키마의 정규식

  21. 21

    두 텍스트 사이의 텍스트에 대한 정규식

  22. 22

    Groupby 및 Python의 텍스트 템플릿에 데이터 채우기

  23. 23

    정규식의 템플릿 문자열

  24. 24

    테이블 형식 데이터를위한 대용량 텍스트 파일의 Pythonic 정규식

  25. 25

    Play Framework 2.3의 템플릿 양식 텍스트 상자 유효성 검사

  26. 26

    Python 정규식이 텍스트를 인식하지 못함

  27. 27

    이 텍스트의 변형을 일치시키기 위해 이러한 정규식을 어떻게 결합합니까?

  28. 28

    Kendo UI 템플릿에서 숫자 텍스트 상자의 최소값 설정

  29. 29

    정보 추출을위한 부스트의 정규 표현식

뜨겁다태그

보관