Hướng dẫn escape character python regex - nhân vật thoát khỏi python regex

Tôi đã tìm thấy

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
2 như được chỉ ra bởi Karoly Horvath. Đây là cách nó hoạt động.

Nội phân Chính showShow

  • Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ tệp python thoát khỏi dấu gạch chéo ngược hoặc đặt câu hỏi của riêng bạn.
  • Sử dụng thay thế ()
  • Sử dụng hàm dịch ()
  • Sử dụng biểu thức chính quy (re.sub ())
  • Phương pháp 1: Sử dụng hàm thay thế chuỗi sẵn ()
  • Phương pháp 2: Sử dụng hàm dịch () trong Python
  • Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Python

>>> re.escape('ads;lfkjaldsf\ndsklajflad\tkjhklajf\n')
'ads\\;lfkjaldsf\\\ndsklajflad\\\tkjhklajf\\\n'

Update:

Trong khi tôi thấy

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
2 trốn thoát quá nhiều. Không gian, dấu chấm phẩy và rất nhiều nhân vật không cần phải trốn thoát trong trường hợp của tôi.

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'

Đây là những gì tôi đã tìm ra mà thực sự có ích.

Tôi đã viết chương trình nhỏ đơn giản này:

Nội phân chính

  • Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ tệp python thoát khỏi dấu gạch chéo ngược hoặc đặt câu hỏi của riêng bạn.
  • Sử dụng thay thế ()
  • Sử dụng hàm dịch ()
  • Sử dụng biểu thức chính quy (re.sub ())
  • Phương pháp 1: Sử dụng hàm thay thế chuỗi sẵn ()
  • Phương pháp 2: Sử dụng hàm dịch () trong Python
  • Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Python
def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")

Trong khi tôi thấy

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
2 trốn thoát quá nhiều. Không gian, dấu chấm phẩy và rất nhiều nhân vật không cần phải trốn thoát trong trường hợp của tôi.

Đây là những gì tôi đã tìm ra mà thực sự có ích.

Tôi đã viết chương trình nhỏ đơn giản này:

Nội phân chínhFeb 26, 2017 at 7:19

2

chính ()

Tôi biết rằng "\" là một lối thoát theo nghĩa đen trong Python nhưng tất cả những gì tôi cần là quét qua tệp văn bản và thay thế mọi phản ứng dữ dội bằng một dấu gạch chéo phía trước "/".

s.replace('\\','/')

Có ai biết phải làm gì không?Feb 26, 2017 at 7:20

adgon92adgon92adgon92

hỏi ngày 26 tháng 2 năm 2017 lúc 7:191 silver badge6 bronze badges

3

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ tệp python thoát khỏi dấu gạch chéo ngược hoặc đặt câu hỏi của riêng bạn.

  • Sử dụng thay thế ()
  • Sử dụng hàm dịch ()
  • Sử dụng biểu thức chính quy (re.sub ())
  • Phương pháp 1: Sử dụng hàm thay thế chuỗi sẵn ()
  • Phương pháp 1: Sử dụng hàm thay thế chuỗi sẵn ()
  • Phương pháp 2: Sử dụng hàm dịch () trong Python
  • Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Python

Trong khi tôi thấy

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
2 trốn thoát quá nhiều. Không gian, dấu chấm phẩy và rất nhiều nhân vật không cần phải trốn thoát trong trường hợp của tôi.String replace() function, translate() method, or regular expression(re.sub()).

Đây là những gì tôi đã tìm ra mà thực sự có ích.

  • Tôi đã viết chương trình nhỏ đơn giản này: Using replace()
  • Nội phân chính Using translate() function
  • chính () Using regular expression (re.sub())
  • Tôi biết rằng "\" là một lối thoát theo nghĩa đen trong Python nhưng tất cả những gì tôi cần là quét qua tệp văn bản và thay thế mọi phản ứng dữ dội bằng một dấu gạch chéo phía trước "/". Backslash in Python
  • Có ai biết phải làm gì không? Method 1: Using the inbuilt String replace() function
  • hỏi ngày 26 tháng 2 năm 2017 lúc 7:19 Method 2: Using translate() function in Python
  • Bạn phải nhớ rằng các chuỗi trong Python được giải thích. Chỉ các chuỗi thô không tuân theo quy tắc này. Ở đây tôi có nghĩa là nếu bạn có một
    def main ( ):
    with open("test.txt", "rt") as fin:
        with open("out.txt", "wt") as fout:
                for line in fin:
                    fout.write(line.replace("\", "/"))
    print ("done")
    
    4 được bao gồm trong chuỗi của bạn, nó sẽ được hiểu là một dòng mới. May mắn thay, các chuỗi được đọc từ tập tin đã là thô.
    Method 3: Using regular expression (re.sub()) in Python

Sử dụng thay thế ()

example_string = "path/to/check"
new_string = example_string.replace("/", "\\")
print(new_string)

Output:

path\to\check

Sử dụng hàm dịch ()

stringn = "book/pencil/ink/pen/rubber"
stringn1 = stringn.translate(str.maketrans({'/': '\\'}))
print(stringn1)

Output:

book\pencil\ink\pen\rubber

Sử dụng biểu thức chính quy (re.sub ())

import re
string1 = "path/to/check/and/edit"
string2 = re.sub("/", r"\\", string1)
print(string2)

Output:

path\to\check\and\edit

Phương pháp 1: Sử dụng hàm thay thế chuỗi sẵn ()

Phương pháp 2: Sử dụng hàm dịch () trong Pythonis used as part of a special character sequence; for example, “\n” means move to the next line, “\b” is the backspace character, and “\t” is tab space in Python code. In these cases, Python considers the sequence of characters as a single character in each case.

Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Pythonused as an escape character – in this case, when a backslash is placed in front of a particular character, it changes the meaning of that character. In fact, backslash in Python is represented as “\\”.

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
0

Trong khi tôi thấy

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
2 trốn thoát quá nhiều. Không gian, dấu chấm phẩy và rất nhiều nhân vật không cần phải trốn thoát trong trường hợp của tôi.

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
1

Output:

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
2

Đây là những gì tôi đã tìm ra mà thực sự có ích.example”string because the second quotation marks have been rendered literal string character by the escape character -the backslash.

Tôi đã viết chương trình nhỏ đơn giản này:

Phương pháp 1: Sử dụng hàm thay thế chuỗi sẵn ()

Phương pháp 2: Sử dụng hàm dịch () trong Python

Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Python

Trong khi tôi thấy

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
2 trốn thoát quá nhiều. Không gian, dấu chấm phẩy và rất nhiều nhân vật không cần phải trốn thoát trong trường hợp của tôi.

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
4

Output:

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
5

Đây là những gì tôi đã tìm ra mà thực sự có ích.returns a copy of the string after making the replacement, and therefore, the example_string variable will still have the original string even after execution.

Phương pháp 2: Sử dụng hàm dịch () trong Python

Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Pythonallows one to replace one or multiple characters which should be provided in a dictionary as shown below. The code replaces forward-slash (/) and “e” in a string with a backslash.

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
6

Output:

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
7

Lưu ý rằng các khóa cho từ điển dịch phải là một ký tự duy nhất nếu không, bạn sẽ gặp lỗi.keys for the translate dictionary must be a single character otherwise, you will run into an error.

Phương pháp 3: Sử dụng biểu thức chính quy (re.sub ()) trong Python

Như tên cho thấy, gói RE được cài đặt sẵn hoạt động với các biểu thức thông thường để phát hiện các mẫu trong chuỗi.Gói có một hàm con () có thể được sử dụng để tìm và thay thế các chuỗi con.Ví dụ,re package works with regular expressions to detect patterns in strings. The package has a function sub() that can be used to find and substitute substrings. For example,

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
8

Output:

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
9

Trong mô -đun RE, chúng ta cần vượt qua \ \\\\\ 'làm mẫu để nắm bắt một dấu gạch chéo ngược.re module, we need to pass “\\\\” as the pattern to capture a single backslash.

Lý do: Trong gói, dấu gạch chéo ngược cũng được sử dụng như một ký tự thoát, và do đó, chúng ta cần phải vượt qua \ \, và vì chúng ta cũng cầnLà "\\\\".

Ngoài ra, chúng ta có thể sử dụng định dạng chuỗi thô (chúng là các chuỗi đi trước R), chuyển đổi dấu gạch chéo ngược thành một chuỗi theo nghĩa đen.Lưu ý rằng, trong mã, chúng tôi vẫn sử dụng \ \, vì chuỗi thô chỉ áp dụng cho mẫu RE nhưng chúng tôi vẫn cần viết Backslash dưới dạng \ \ 'raw string formatting (they are strings preceded by r), which converts backslash into a literal string. Note that, in the code, we still use “\\”, because the raw string only applies to the re pattern but we still need to write backslash as “\\”

def main ( ):
with open("test.txt", "rt") as fin:
    with open("out.txt", "wt") as fout:
            for line in fin:
                fout.write(line.replace("\", "/"))
print ("done")
0

Output:

>>> re.sub(r'(\n|\t|\"|\')',lambda m:{'\n':'\\n','\t':'\\t','\'':'\\\'','\"':'\\\"'}[m.group()], "hello hi  \n \'GM\' \t TC  \n \"Bye\" \t")
'hello hi  \\n \\\'GM\\\' \\t TC  \\n \\"Bye\\" \\t'
9