문자열에서 "Unescaping"백 슬래시

TL; DR;

내가 좋아하는 (정규식 표현) 문자열을 변환 할 "\\.""\."(에 가까운 무언가를 깨끗하고 탄력있는 방법 sed 's/\\\\/\\/g'이지만이 날 경우에 깨질 수 있을지 모르겠어요,)
val.decode('string-escape')내가 python3를 사용하고 있기 때문에 옵션이 아닙니다.

지금까지 시도한 것 :

  • 변형 val.replace('\\\\', '\\')
  • 두 가지 질문에 대한 답을 보았지만 제 경우에는 작동하지 못했습니다.
    • 변형 val.encode().decode('unicode-escape')
  • 문자열 에 대한 문서를 보았지만 해결책을 찾지 못했습니다.

문자열 이스케이프 (및 이스케이프 해제)가 상당히 흔하고 기본적인 문제처럼 보이지만 아직 해결책을 찾지 못했기 때문에 관련 부분을 놓쳤다 고 확신합니다. = /

전체 기사 :

나는 그렇게 YAML 파일을 가지고

- !Scheme
      barcode: _([ACGTacgt]+)[_.]
      lane: _L(\d\d\d)[_.]
      name: RKI
      read: _R(\d)+[_.]
      sample_name: ^(.+)(?:_.+){5}
      set: _S(\d+)[_.]
      user: _U([a-zA-Z0-9\-]+)[_.]
      validation: .*/(?:[a-zA-Z0-9\-]+_)+(?:[a-zA-Z0-9])+\.fastq.*
...

"Scheme"개체를 설명합니다. '이름'키는 식별자이고 나머지는 정규식을 설명합니다.

해당 YAML에서 객체를 구문 분석 할 수 있기를 원하므로 from_yaml클래스 메서드를 작성했습니다 .

scheme = Scheme()
loaded_mapping = loader.construct_mapping(node)  # load yaml-node as dictionary WARNING! loads str escaped

# re.compile all keys except name, adding name as regular string and
# unescaping escaped sequences (like '\') in the process
for key, val in loaded_mapping.items():
    if key == 'name':
        processed_val = val
    else:
        processed_val = re.compile(val)  # backslashes in val are escaped
    scheme.__dict__[key] = processed_val

문제는 loader.construct_mapping(node)백 슬래시가 이스케이프 된 문자열 로드하므로 정규식이 더 이상 정확하지 않다는 것입니다.

val.encode().decode('unicode-escape')및의 여러 변형을 시도했지만 val.replace('\\\\', '\\')운이 없었습니다.

누군가 이것을 처리하는 방법을 알고 있다면 대단히 감사하겠습니다! 저는 이런 특정한 일을하는 방식에 결혼하지 않았으며 대안적인 접근 방식에 열려 있습니다.

감사합니다!

토 말락

이 매우 간단한 YAML 파일이 있다고 가정합니다.

lane: _L(\d\d\d)[_.]

다음과 같이 PyYAML로로드합니다.

import yaml
import re

with open('test.yaml', 'rb') as stream:
    data = yaml.safe_load(stream)

lane_pattern = data['lane']
print(lane_pattern)

lane_expr = re.compile(data['lane'])
print(lane_expr)

그러면 결과는 예상 한대로 정확하게 나타납니다.

_L(\d\d\d)[_.]
re.compile('_L(\\d\\d\\d)[_.]')

YAML이 구문 분석 될 때 진행되는 문자열의 이중 이스케이프가 없으므로 이스케이프를 해제 할 수 없습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

백 슬래시 SQL / SSIS에서 문자열 구분

분류에서Dev

JAVA에서 백 슬래시로 HTML 문자열 변환

분류에서Dev

R의 문자열에서 백 슬래시 제거

분류에서Dev

c # 문자열에서 백 슬래시 바꾸기

분류에서Dev

PHP에서 백 슬래시 구분 문자열

분류에서Dev

문자열에서 백 슬래시 제거

분류에서Dev

백 슬래시로 문자열 분할

분류에서Dev

magento-문자열의 백 슬래시

분류에서Dev

jquery 공백에 백 슬래시로 문자열 바꾸기

분류에서Dev

PHP에서 문자열을 비교하고 슬래시와 백 슬래시를 무시하는 방법

분류에서Dev

문자열에 백 슬래시가 있는지 확인

분류에서Dev

문자열에 백 슬래시가 있는지 확인

분류에서Dev

문자열에없는 경우 백 슬래시 추가

분류에서Dev

jquery 문자열에 백 슬래시 추가

분류에서Dev

URL 확인을 위해 문자열에 백 슬래시 추가

분류에서Dev

문자열에 백 슬래시가있을 때 printf 사용

분류에서Dev

백 슬래시는 루비에서 문자열 보간을 중단합니다.

분류에서Dev

백 슬래시 코드보기 및 Labview 2012의 문자열에서 제거

분류에서Dev

JavaScript 및 Python 2.7의 JSON 문자열에서 백 슬래시 이스케이프

분류에서Dev

python3 문자열에서 백 슬래시를 바꾸고 싶습니다.

분류에서Dev

Swift 문자열 리터럴에서 백 슬래시 이스케이프

분류에서Dev

Python 용 Regex의 백 슬래시 문자

분류에서Dev

JavaScript에서 제어 문자로 해석되는 백 슬래시

분류에서Dev

sed에서 백 슬래시 문자 이스케이프

분류에서Dev

Java 및 Windows에서 백 슬래시 대 슬래시

분류에서Dev

Qt에서 백 슬래시 또는 슬래시?

분류에서Dev

문자열 조인을 사용하여 문자열에서 백 슬래시 가져 오기

분류에서Dev

백 슬래시를 사용하여 Python 16 진수 문자열에서 16 진수 문자열로

분류에서Dev

문자열이 포함 된 백 슬래시는 다른 문자열에서 찾을 수 없습니다.

Related 관련 기사

  1. 1

    백 슬래시 SQL / SSIS에서 문자열 구분

  2. 2

    JAVA에서 백 슬래시로 HTML 문자열 변환

  3. 3

    R의 문자열에서 백 슬래시 제거

  4. 4

    c # 문자열에서 백 슬래시 바꾸기

  5. 5

    PHP에서 백 슬래시 구분 문자열

  6. 6

    문자열에서 백 슬래시 제거

  7. 7

    백 슬래시로 문자열 분할

  8. 8

    magento-문자열의 백 슬래시

  9. 9

    jquery 공백에 백 슬래시로 문자열 바꾸기

  10. 10

    PHP에서 문자열을 비교하고 슬래시와 백 슬래시를 무시하는 방법

  11. 11

    문자열에 백 슬래시가 있는지 확인

  12. 12

    문자열에 백 슬래시가 있는지 확인

  13. 13

    문자열에없는 경우 백 슬래시 추가

  14. 14

    jquery 문자열에 백 슬래시 추가

  15. 15

    URL 확인을 위해 문자열에 백 슬래시 추가

  16. 16

    문자열에 백 슬래시가있을 때 printf 사용

  17. 17

    백 슬래시는 루비에서 문자열 보간을 중단합니다.

  18. 18

    백 슬래시 코드보기 및 Labview 2012의 문자열에서 제거

  19. 19

    JavaScript 및 Python 2.7의 JSON 문자열에서 백 슬래시 이스케이프

  20. 20

    python3 문자열에서 백 슬래시를 바꾸고 싶습니다.

  21. 21

    Swift 문자열 리터럴에서 백 슬래시 이스케이프

  22. 22

    Python 용 Regex의 백 슬래시 문자

  23. 23

    JavaScript에서 제어 문자로 해석되는 백 슬래시

  24. 24

    sed에서 백 슬래시 문자 이스케이프

  25. 25

    Java 및 Windows에서 백 슬래시 대 슬래시

  26. 26

    Qt에서 백 슬래시 또는 슬래시?

  27. 27

    문자열 조인을 사용하여 문자열에서 백 슬래시 가져 오기

  28. 28

    백 슬래시를 사용하여 Python 16 진수 문자열에서 16 진수 문자열로

  29. 29

    문자열이 포함 된 백 슬래시는 다른 문자열에서 찾을 수 없습니다.

뜨겁다태그

보관