Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

Tôi có yêu cầu cho phép chữ và số khác và một số ký tự khác cho một trường. Tôi đang sử dụng biểu thức chính quy này:

 "^[a-zA-Z0-9!@#$&()-`.+,/\"]*$".

Các ký tự đặc biệt được phép là ____88

Nhưng khi tôi kiểm tra mẫu với chuỗi "test_for_extends_alphanumeric", chuỗi vượt qua thử nghiệm. Tôi không được phép "_" trong mẫu. Tôi đang làm gì sai?

Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

Toby Speight

25.7K47 Huy hiệu vàng62 Huy hiệu bạc95 Huy hiệu Đồng47 gold badges62 silver badges95 bronze badges

Đã hỏi ngày 31 tháng 1 năm 2013 lúc 23:08Jan 31, 2013 at 23:08

Bạn cần phải thoát khỏi dấu gạch nối:

"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"

Nếu bạn không thoát khỏi nó thì nó có nghĩa là một loạt các ký tự, như

"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
0.

Đã trả lời ngày 31 tháng 1 năm 2013 lúc 23:09Jan 31, 2013 at 23:09

Mark Byersmark ByersMark Byers

782K184 Huy hiệu vàng1552 Huy hiệu bạc1440 Huy hiệu đồng184 gold badges1552 silver badges1440 bronze badges

1

Trong lớp nhân vật của bạn,

"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
1 được hiểu là một phạm vi giống như cách ví dụ: Do đó, nó đề cập đến bất kỳ ký tự nào có mã ASCII thập phân từ 41
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
3 đến 96
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
4.

"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
5 có mã 95, nó nằm trong phạm vi và do đó được phép, cũng như
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
6,
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
7,
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
8, v.v.

Để tránh điều này, bạn có thể thoát khỏi

"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
9, tức là
/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/
0 hoặc đặt
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
9 ở đầu hoặc cuối của lớp ký tự:

/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/

Không cần phải thoát khỏi

/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/
2 và lưu ý rằng vì bạn đang sử dụng bộ định lượng
/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/
3, một chuỗi trống cũng sẽ vượt qua bài kiểm tra.

Đã trả lời ngày 31 tháng 1 năm 2013 lúc 23:26Jan 31, 2013 at 23:26

Sử dụng regex này, bạn cho phép tất cả các ký tự chữ và số và đặc biệt. Ở đây

/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/
4 đang cho phép tất cả các chữ số và
/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/
5 cho phép không gian

[><?@+'`~^%&\*\[\]\{\}.!#|\\\"$';,:;=/\(\),\-\w\s+]*

Các ký tự đặc biệt được phép là

/^[a-zA-Z0-9!@#$&()`.+,/"-]*$/
6

Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

David Buck

3.59033 Huy hiệu vàng29 Huy hiệu bạc34 Huy hiệu đồng33 gold badges29 silver badges34 bronze badges

Đã trả lời ngày 26 tháng 8 năm 2020 lúc 14:05Aug 26, 2020 at 14:05

Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

0

Hyphens trong các lớp ký tự biểu thị một phạm vi trừ khi chúng được thoát hoặc ở đầu hoặc cuối của lớp ký tự. Nếu bạn muốn bao gồm dấu gạch nối, thường là một ý tưởng tốt để đặt chúng ở phía trước để bạn thậm chí không phải lo lắng về việc trốn thoát:

^[-a-zA-Z0-9!@#$&()`.+,/\"]*$

Nhân tiện,

"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
5 thực sự rơi vào giữa
"^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$"
3 và backtick trong ASCII:

http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters

Đã trả lời ngày 31 tháng 1 năm 2013 lúc 23:11Jan 31, 2013 at 23:11

Thuốc nổ PillsexplosionExplosion Pills

185K49 Huy hiệu vàng318 Huy hiệu bạc394 Huy hiệu đồng49 gold badges318 silver badges394 bronze badges

1

Làm thế nào về điều này .. cho phép các ký tự đặc biệt và cũng như số alpha

"[-~]*$"

Đã trả lời ngày 3 tháng 1 năm 2017 lúc 16:42Jan 3, 2017 at 16:42

Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

Bởi vì tôi không biết có bao nhiêu ký tự đặc biệt tồn tại, rất khó để kiểm tra chuỗi chứa ký tự đặc biệt bằng danh sách trắng. Có thể hiệu quả hơn để kiểm tra chuỗi chỉ chứa bảng chữ cái hoặc số.

Đối với ví dụ Kotlin

fun String.hasOnlyAlphabetOrNumber(): Boolean {
    val p = Pattern.compile("[^a-zA-Z0-9]")
    return !(p.matcher(this).matches())
}

cho swift4

func hasOnlyAlphabetOrNumber() -> Bool {
    if self.isEmpty { return false }
    do {
        let pattern = "[^a-zA-Z0-9]"
        let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)
        return regex.matches(in: self, options: [], range: NSRange(location: 0, length: self.count)).count == 0
    } catch {
        return false
    }
}

Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

Đã trả lời ngày 21 tháng 12 năm 2017 lúc 8:05Dec 21, 2017 at 8:05

Hướng dẫn python regex match alphanumeric and special characters - python regex đối sánh ký tự chữ và số và ký tự đặc biệt

Brownsoo Hanbrownsoo HanBrownsoo Han

4.4213 Huy hiệu vàng20 Huy hiệu bạc20 Huy hiệu đồng 203 gold badges20 silver badges20 bronze badges

Làm thế nào để Python phát hiện các nhân vật chữ và số đặc biệt?

Bạn có thể sử dụng regex/^[a-za-z0-9 _@./#&+-]*$/./^[ A-Za-z0-9_@./#&+-]*$/.

Làm thế nào để bạn sử dụng các ký tự đặc biệt trong Regex Python?

Để phù hợp với một ký tự có ý nghĩa đặc biệt trong Regex, bạn cần sử dụng tiền tố trình tự thoát với dấu gạch chéo ngược (\).Ví dụ., \.diêm ".";Regex \+ khớp với "+";và regex \ (khớp "(". Bạn cũng cần sử dụng regex \\ để khớp với "\" (slash ngược).use a escape sequence prefix with a backslash ( \ ). E.g., \. matches "." ; regex \+ matches "+" ; and regex \( matches "(" . You also need to use regex \\ to match "\" (back-slash).

'$' Có nghĩa là gì ở Regex?

$ có nghĩa là "khớp với phần cuối của chuỗi" (vị trí sau ký tự cuối cùng trong chuỗi).Cả hai đều được gọi là neo và đảm bảo rằng toàn bộ chuỗi được khớp thay vì chỉ là một chuỗi con.Match the end of the string" (the position after the last character in the string). Both are called anchors and ensure that the entire string is matched instead of just a substring.

Làm gì (? Tôi làm ở Regex?

(? I) Làm cho trường hợp Regex không nhạy cảm.(? C) Làm cho trường hợp Regex nhạy cảm.makes the regex case insensitive. (? c) makes the regex case sensitive.