Hướng dẫn python regex ignore underscore - python regex bỏ qua dấu gạch dưới

Tôi cần tìm tất cả các sumbol hai Char trong Unicode, ngoại trừ dấu gạch dưới. Solutin hiện tại là:

pattern = re.compile(ur'(?:\s*)(\w{2})(?:\s*)', re.UNICODE | re.MULTILINE | re.DOTALL)
print pattern.findall('a b c ab cd vs sd a a_ _r')
['ab', 'cd', 'vs', 'sd', 'a_', '_r']

Tôi cần loại trừ dấu gạch dưới _ khỏi regex, vì vậy A_ và _r không được tìm thấy. Vấn đề là, các nhân vật của tôi có thể bằng bất kỳ ngôn ngữ nào. Vì vậy, tôi không thể sử dụng regex như thế này: [^a-za-z]. Ví dụ, bằng tiếng Nga:a_ AND _r are not found. The problem is, my characters can be in any language. So i can't use regex like this: [^a-zA-Z]. For example, in russian:

print pattern.findall(u'ф_')

Hỏi ngày 25 tháng 9 năm 2012 lúc 19:29Sep 25, 2012 at 19:29

Hướng dẫn python regex ignore underscore - python regex bỏ qua dấu gạch dưới

Loại trừ bất cứ điều gì là một char không từ và _

[^\W_]

thay vì

\w

Đã trả lời ngày 25 tháng 9 năm 2012 lúc 19:35Sep 25, 2012 at 19:35

Đặt cược tốt nhất của bạn sẽ là sử dụng mô -đun regex mới thay thế. Một trong những tính năng của nó là nó có thể xóa các ký tự khỏi bộ ký tự:

import regex as re

pattern = re.compile(ur'(?:\s*)([\w--_]{2})(?:\s*)', re.UNICODE | re.MULTILINE | re.DOTALL)

Cú pháp [\w--_] tạo ra một bộ ký tự giống như \w với ký tự gạch dưới bị xóa khỏi các ký tự phù hợp.

Đã trả lời ngày 25 tháng 9 năm 2012 lúc 19:33Sep 25, 2012 at 19:33

Martijn Pieters ♦ Martijn PietersMartijn Pieters

989K275 Huy hiệu vàng3891 Huy hiệu bạc3247 Huy hiệu đồng275 gold badges3891 silver badges3247 bronze badges

Điều này có vẻ phù hợp với tôi:

a="Exclude_from_search"
re.search("(\w[^_]+)", a).group(0)
'Exclude'

Đã trả lời ngày 30 tháng 4 năm 2018 lúc 17:12Apr 30, 2018 at 17:12

musca999musca999musca999

3452 Huy hiệu bạc12 Huy hiệu Đồng2 silver badges12 bronze badges

Tôi đã cố gắng kết hợp với Regex tất cả các ký tự chữ và số, ngoại trừ dấu gạch dưới. Tôi hiện đang sử dụng

print pattern.findall(u'ф_')
0, nhưng tôi tự hỏi liệu có thể sử dụng \w và loại trừ
print pattern.findall(u'ф_')
2.

Nội phân chính

  • Regex chữ và số mà không cần gạch dưới
  • Regex để phù hợp với bất kỳ chuỗi chữ và số nào
  • GREP chữ và dưới
  • Regex cho các chữ cái và dấu gạch dưới
  • Bạn có thể thích:
  • Làm thế nào để bạn viết chữ và số trong regex?
  • Có phải là một nhân vật đặc biệt trong Regex?
  • Có phải là một nhân vật chữ và số?
  • Làm thế nào để bạn nhấn mạnh ở Regex?

Thanks!

Ký tự _ (dấu gạch dưới) trong biểu thức chính quy có nghĩa là tên vùng phải có dấu gạch dưới ngay sau chuỗi chữ và số được khớp với dấu ngoặc trước. Các . (giai đoạn) khớp với bất kỳ ký tự (một ký tự đại diện).May 22, 2014 at 21:38

Tôi đã cố gắng kết hợp với Regex tất cả các ký tự chữ và số, ngoại trừ dấu gạch dưới. Tôi hiện đang sử dụng

print pattern.findall(u'ф_')
0, nhưng tôi tự hỏi liệu có thể sử dụng \w và loại trừ
print pattern.findall(u'ф_')
2.

Nội phân chính

Regex chữ và số mà không cần gạch dướiMay 22, 2014 at 21:40

Regex để phù hợp với bất kỳ chuỗi chữ và số nào

import re

string = '__comMand__aNnd__conqQuer__'
match = re.search(r'(\w)\1', string, re.IGNORECASE)
print(match.group(1) if match else -1)

# output: m

Regex chữ và số mà không cần gạch dưới

Regex để phù hợp với bất kỳ chuỗi chữ và số nào

GREP chữ và dưới

Khi được hỏi ngày 22 tháng 5 năm 2014 lúc 21:38

Vâng, như vậy:

print pattern.findall(u'ф_')
3

Regex để phù hợp với bất kỳ chuỗi chữ và số nào

Java2Blog là chuỗi chữ và số Java $ 2_blog không phải là chuỗi chữ và số ở đây, chúng ta cần nhập mô -đun RE và sử dụng phương thức re.matches () để kiểm tra các ký tự chữ và số. Bạn có thể sử dụng một regex khác để kiểm tra các ký tự chữ và số.

Trình xác nhận biểu thức chính quy: Cho phép các ký tự chữ và số và, tryparse. Regex khớp chuỗi chữ và số chỉ. Bảng chữ cái (trên và chữ thường) và số (chữ số) và không gian là ký tự hợp lệ. Bảng chữ cái (trên và chữ thường) và số (chữ số) và không gian là ký tự hợp lệ.

Nếu bạn đang sử dụng JavaScript, không có tùy chọn "dotall", hãy thử [\ s \ s]*. Điều này có nghĩa là "khớp với bất kỳ số lượng ký tự nào là khoảng trắng hoặc không gian trắng" - một cách hiệu quả "khớp với bất kỳ chuỗi nào". Một tùy chọn khác chỉ hoạt động cho JavaScript (và không được nhận ra bởi bất kỳ hương vị regex nào khác) là [^]* cũng phù hợp với bất kỳ chuỗi nào.

Biểu hiện. ^ ((\ d {5}-\ d {4}) | (\ d {5}) | ([a-z] \ d [a-z] \ s \ d [a-z] \ d)) $. Sự mô tả. Biểu thức này phù hợp với ba định dạng khác nhau của mã bưu chính: 5 chữ số của chúng tôi mã zip, 5 chữ số của chúng tôi mã zip + 4 và 6 chữ số mã bưu chính Canada. Cái đầu tiên phải là 5 chữ số. ZIP+4 phải là 5 chữ số số, dấu gạch nối và sau đó là 4 chữ số.

Tìm kiếm với các biểu thức chính quy (regex) Một biểu thức chính quy là một hình thức tìm kiếm nâng cao tìm kiếm các mẫu cụ thể, trái ngược với các thuật ngữ và cụm từ nhất định. Với Regex, bạn có thể sử dụng khớp mẫu để tìm kiếm các chuỗi ký tự cụ thể thay vì xây dựng nhiều truy vấn tìm kiếm theo nghĩa đen.

GREP chữ và dưới

Sử dụng dấu hoa thị với phần mở rộng tệp thay vì tên tệp sẽ hướng dẫn grep. Sử dụng ví dụ trên cho các thông báo lỗi, xem qua tất cả các tệp nhật ký có thể trông như thế này: grep -c 'One \ | hai \ | ba' /var/log/*.log Tìm kiếm đệ quy cho nhiều trận đấu. Sử dụng GREP sẽ chỉ tìm kiếm trong thư mục hiện tại với dấu hoa thị đang được sử dụng.

Các ký tự không phải ASCII bắt đầu ở 0x80 và đi đến 0xFF khi nhìn vào byte. Grep (và gia đình) không thực hiện xử lý unicode để hợp nhất các ký tự đa byte thành một thực thể duy nhất để phù hợp với regex như bạn dường như muốn. Tùy chọn -P trong grep của tôi cho phép sử dụng \ XDD thoát trong các lớp ký tự để thực hiện những gì bạn muốn.

Các ký tự chữ và số: Vì các máy tính (hoặc các đơn vị xử lý trung tâm, là cụ thể) Sử dụng ngôn ngữ máy dưới dạng số để giao tiếp, các lập trình viên máy tính cần viết hướng dẫn của họ bằng cách sử dụng các số thay vì ký tự bảng chữ cái. Để làm điều này, các lập trình viên sử dụng các biểu diễn số của những gì con người xem là ký tự bảng chữ cái.

Regex cho các chữ cái và dấu gạch dưới

[A-ASA-Z0-9]+ Một hoặc nhiều chữ cái hoặc số. Phần mở rộng phải dài ít nhất một ký tự và chỉ chứa các chữ cái và số. Đây là điển hình, nhưng nếu bạn muốn cho phép nhấn mạnh, điều đó cũng có thể được giải quyết. Bạn cũng có thể cung cấp một phạm vi chiều dài {2,3} thay vì một hoặc nhiều + trình mai mối, nếu điều đó phù hợp hơn.

Tham gia Stack Overflow để tìm hiểu, chia sẻ kiến ​​thức và xây dựng sự nghiệp của bạn.

Với một số biến thể tùy thuộc vào động cơ, Regex thường định nghĩa một ký tự từ là chữ cái, chữ số hoặc dấu gạch dưới. Một ranh giới từ \ B phát hiện một vị trí trong đó một bên là một ký tự như vậy và bên kia thì không.


Bạn có thể thích:

  • Ủy quyền nhóm quảng cáo cốt lõi ASP Net
  • Quy tắc mã giả
  • R Áp dụng chức năng cho các cột khung dữ liệu
  • Nhân bản sâu trong Java
  • Cách thay đổi kích thước màn hình trên Windows 10
  • Cách triển khai ứng dụng gốc React
  • C# Cấu trúc dữ liệu Câu hỏi phỏng vấn
  • Hiển thị ngày và giờ hiện tại trong HTML
  • Mã Python khối và thụt lề
  • Chức năng Python Input (): Nhận đầu vào của người dùng làm chuỗi

Làm thế nào để bạn viết chữ và số trong regex?

Regex \ W tương đương với [A-A-Z0-9_], phù hợp với các ký tự chữ và số và dấu gạch dưới.\w is equivalent to [A-Za-z0-9_] , matches alphanumeric characters and underscore.

Có phải là một nhân vật đặc biệt trong Regex?

Regex không nhận ra dấu gạch dưới là nhân vật đặc biệt..

Có phải là một nhân vật chữ và số?

Các ký tự không phải là ký tự là ngoại trừ các ký tự chữ và số. Không gian, dấu hiệu phần trăm, dấu gạch dưới, đường ống, ruột kết, dấu chấm phẩy, vv là các ký tự không phải là số đồngum. Chúng cũng có thể được phân loại là ký tự dấu câu, ký tự biểu tượng, v.v.non-alphanumeric characters. They can be also categorized as punctuation characters, symbol characters, etc.

Làm thế nào để bạn nhấn mạnh ở Regex?

Ký tự _ (dấu gạch dưới) trong biểu thức chính quy có nghĩa là tên vùng phải có dấu gạch dưới ngay sau chuỗi chữ và số được khớp với dấu ngoặc trước. Các . (giai đoạn) khớp với bất kỳ ký tự (một ký tự đại diện).the zone name must have an underscore immediately following the alphanumeric string matched by the preceding brackets. The . (period) matches any character (a wildcard).