Python 정규식은 따옴표 괄호 중괄호 또는 괄호로 묶인 모든 항목과 일치합니다.

Curaro

최신 정보

이것은 아직까지 완전히 해결책이 아닙니다. 그것은 단지 반복 닫는 문자를 앞입니다 (예를 들어 )), ]], }}). 동봉 된 내용을 캡처하는 방법을 찾고 있으며이를 업데이트 할 것입니다.

암호:

>>> import re
>>> re.search(r'(\(.+?[?<!)]\))', '((x(y)z))', re.DOTALL).groups()
('((x(y)z))',)

세부:

r'(\(.+?[?<!)]\))'
  • () -그룹 특수 문자 캡처.
  • \(\)- 개방형 및 폐쇄 문자 (예를 들어 ', ", (), {}, [])
  • .+?- 모든 문자 내용과 일치 ( re.DOTALL플래그 와 함께 사용 )
  • [?<!)]-문자에 대한 부정적 룩 비하인드 )(이를 일치하는 닫는 문자로 대체). 이것은 기본적으로 문자가 앞에 있지 않은 모든 )문자를 찾습니다 \)(자세한 내용은 여기 ).

나는 인터프리터 / 컴파일러의 기본 논리를 얻으려고 노력하면서 내가 함께 일하고있는이 렉서에 대한 변수 할당 문과 같은 것을 구문 분석하려고했습니다.

다음은 내가 다루는 기본 할당 문과 리터럴입니다.

az = none
az_ = true
az09 = false
az09_ = +0.9
az_09 = 'az09_'
_az09 = "az09_"
_az = [
  "az",
  0.9
]
_09 = {
  0: az
  1: 0.9
}
_ = (
  true
)

어떻게 든, 내가 좋아하는 그 간단한 과제 구문 분석 관리 none, true, false, 및 숫자 리터럴. 내가 현재 갇힌 곳은 다음과 같습니다.

import sys
import re

# validate command-line arguments
if (len(sys.argv) != 2): raise ValueError('usage: parse <script>')

# parse the variable name and its value
def handle_assignment(index, source):
    # TODO: handle quotations, brackets, braces, and parenthesis values
    variable = re.search(r'[\S\D]([\w]+)\s+?=\s+?(none|true|false|[-+]?\d+\.?\d+|[\'\"].*[\'\"])', source[index:])
    if variable is not None:
        print('{}={}'.format(variable.group(1), variable.group(2)))
        index += source[index:].index(variable.group(2))
    return index

# parse through the source element by element
with open(sys.argv[1]) as file:
    source = file.read()
    index = 0
    while index < len(source):
        # checks if the line matches a variable assignment statement
        if re.match(r'[\S\D][\w]+\s+?=', source[index:]):
            index = handle_assignment(index, source)
        index += 1

동봉 된 따옴표, 대괄호, 중괄호 및 괄호로 이러한 값을 캡처하는 방법을 찾고있었습니다.

아마도 답변을 찾으면이 게시물을 업데이트 할 것입니다.

Barmar

일치하는 각 쌍에 대해 여러 대안이있는 정규식을 사용하십시오.

re.match(r'\'.*?\'|".*?"|\(.*?\)|\[.*?\]|\{.*?\}', s)

그러나 중첩 된 대괄호가있는 경우 첫 번째 끝 대괄호와 일치합니다. 예를 들어 입력이

(words (and some more words))

결과는

(words (and some more words)

정규식은 중첩 된 구조를 일치시키는 데 적합하지 않으므로보다 강력한 구문 분석 기술을 사용해야합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

따옴표로 묶인 문자열 내에서 모든 중괄호를 찾는 정규식

분류에서Dev

표현식 내의 모든 중괄호에 일치하는 닫는 중괄호가 있는지 확인

분류에서Dev

작은 따옴표 / 큰 따옴표와 괄호를 확인하는 정규식?

분류에서Dev

메모장 ++ : 선택한 텍스트를 대괄호, 괄호, 따옴표로 묶는 방법은 무엇입니까?

분류에서Dev

대괄호 또는 괄호로 묶인 문자열의 숫자와 일치하는 정규식

분류에서Dev

정규식-키워드로만 시작하는 경우 대괄호와 따옴표로 묶인 단어 추출

분류에서Dev

SAS에서 따옴표로 묶인 괄호 다루기

분류에서Dev

괄호 안에 큰 따옴표로 묶인 작은 따옴표 바꾸기

분류에서Dev

대괄호 사이의 모든 따옴표를 찾는 정규식

분류에서Dev

중첩 된 괄호가있는 괄호 간 표현식 일치

분류에서Dev

일부 대괄호 앞과 뒤의 모든 항목과 일치하는 정규식

분류에서Dev

'!'로 구분 된 단어와 일치하는 정규식 중괄호 '{' '}'로 묶임

분류에서Dev

정규식 : 괄호 안에있는 모든 것을 캡처하고 중첩 된 괄호도 캡처합니다.

분류에서Dev

괄호 안에없는 정규 표현식과 일치합니다.

분류에서Dev

정규식 : 괄호로 분할 따옴표 안의 중첩 된 괄호 무시

분류에서Dev

Pandas는 sqare 중괄호와 작은 따옴표를 제거합니다.

분류에서Dev

Python : 따옴표와 대괄호없이 목록을 인쇄하는 방법

분류에서Dev

중괄호로 묶인 이니셜 라이저 목록이있는 C ++ 11 g ++

분류에서Dev

숫자 쌍을 대괄호로 묶는 정규 표현식

분류에서Dev

R RegEx : 대괄호 안에있는 모든 큰 따옴표 ( ") 문자와 일치

분류에서Dev

문장에서 괄호로 묶인 모든 단어와 일치

분류에서Dev

중괄호와 일치하는 vbscript 정규식 표현식

분류에서Dev

R 정규 표현식 : 괄호로 묶인 접미사 분리

분류에서Dev

SublimeText를 괄호와 따옴표 또는 괄호를 자동으로 일치하도록 설정하는 방법은 무엇입니까?

분류에서Dev

Javascript는 큰 따옴표로 묶인 모든 구문의 배열을 반환하는 모든 정규식과 일치합니다.

분류에서Dev

중괄호 안의 문자열과 일치하는 정규식

분류에서Dev

& nbsp;가 아닌 모든 단락과 일치합니다. 또는 괄호 안에

분류에서Dev

쌍을 이루는 작은 따옴표 / 큰 따옴표 / 중괄호를 확인하는 HTML5 패턴

분류에서Dev

Regex Php는 대괄호와 중괄호를 StackOverflow Reddit과 같은 링크로 변환합니다.

Related 관련 기사

  1. 1

    따옴표로 묶인 문자열 내에서 모든 중괄호를 찾는 정규식

  2. 2

    표현식 내의 모든 중괄호에 일치하는 닫는 중괄호가 있는지 확인

  3. 3

    작은 따옴표 / 큰 따옴표와 괄호를 확인하는 정규식?

  4. 4

    메모장 ++ : 선택한 텍스트를 대괄호, 괄호, 따옴표로 묶는 방법은 무엇입니까?

  5. 5

    대괄호 또는 괄호로 묶인 문자열의 숫자와 일치하는 정규식

  6. 6

    정규식-키워드로만 시작하는 경우 대괄호와 따옴표로 묶인 단어 추출

  7. 7

    SAS에서 따옴표로 묶인 괄호 다루기

  8. 8

    괄호 안에 큰 따옴표로 묶인 작은 따옴표 바꾸기

  9. 9

    대괄호 사이의 모든 따옴표를 찾는 정규식

  10. 10

    중첩 된 괄호가있는 괄호 간 표현식 일치

  11. 11

    일부 대괄호 앞과 뒤의 모든 항목과 일치하는 정규식

  12. 12

    '!'로 구분 된 단어와 일치하는 정규식 중괄호 '{' '}'로 묶임

  13. 13

    정규식 : 괄호 안에있는 모든 것을 캡처하고 중첩 된 괄호도 캡처합니다.

  14. 14

    괄호 안에없는 정규 표현식과 일치합니다.

  15. 15

    정규식 : 괄호로 분할 따옴표 안의 중첩 된 괄호 무시

  16. 16

    Pandas는 sqare 중괄호와 작은 따옴표를 제거합니다.

  17. 17

    Python : 따옴표와 대괄호없이 목록을 인쇄하는 방법

  18. 18

    중괄호로 묶인 이니셜 라이저 목록이있는 C ++ 11 g ++

  19. 19

    숫자 쌍을 대괄호로 묶는 정규 표현식

  20. 20

    R RegEx : 대괄호 안에있는 모든 큰 따옴표 ( ") 문자와 일치

  21. 21

    문장에서 괄호로 묶인 모든 단어와 일치

  22. 22

    중괄호와 일치하는 vbscript 정규식 표현식

  23. 23

    R 정규 표현식 : 괄호로 묶인 접미사 분리

  24. 24

    SublimeText를 괄호와 따옴표 또는 괄호를 자동으로 일치하도록 설정하는 방법은 무엇입니까?

  25. 25

    Javascript는 큰 따옴표로 묶인 모든 구문의 배열을 반환하는 모든 정규식과 일치합니다.

  26. 26

    중괄호 안의 문자열과 일치하는 정규식

  27. 27

    & nbsp;가 아닌 모든 단락과 일치합니다. 또는 괄호 안에

  28. 28

    쌍을 이루는 작은 따옴표 / 큰 따옴표 / 중괄호를 확인하는 HTML5 패턴

  29. 29

    Regex Php는 대괄호와 중괄호를 StackOverflow Reddit과 같은 링크로 변환합니다.

뜨겁다태그

보관