Saya menemukan bahwa dalam 123
, \d
cocok 1
dan 3
tetapi tidak 2
. Saya bertanya-tanya apakah \d
cocok dengan angka yang memenuhi persyaratan seperti apa? Saya berbicara tentang regex gaya Python.
Plugin ekspresi reguler di Gedit menggunakan regex gaya Python. Saya membuat file teks dengan isinya
123
Hanya 1
dan 3
dicocokkan oleh regex \d
; 2
tidak.
Umumnya untuk urutan nomor digit tanpa karakter lain di antaranya, hanya digit urutan ganjil yang cocok, dan digit urutan genap tidak. Misalnya dalam 12345
, kecocokannya adalah 1
, 3
dan 5
.
\d
akan cocok1
,2
dan3
. Jika tidak, pasti ada sesuatu yang lain dalam ekspresi Anda. Bisakah Anda menunjukkan ekspresi penuh Anda?\d
adalah singkatan[0-9]
, jadi itu harus cocok2
. Silakan kirim test case lengkap (skrip yang dapat dijalankan, yang menunjukkan masalah Anda) dan mungkin kami bisa mencari tahu apa yang salah.11111
dan22222
.Jawaban:
[0-9]
tidak selalu sama dengan\d
. Dalam python3,[0-9]
hanya cocok0123456789
karakter, sedangkan\d
cocok[0-9]
dan karakter digit lainnya, misalnya angka Arab Timur٠١٢٣٤٥٦٧٨٩
.sumber
import re, re.match(r'\d', '٠١٢٣٤٥٦٧٨٩')
tidak menunjukkan kecocokanPython
dan\d
cocok dengan setiap digit Unicode hanya di Python3. Dalam Python 2.7 itu masih ASCII lama[0-9]
- itu bisa bernilai menjelaskan itu dalam jawabannya. :)\d
cocok dengan satu digit dalam kebanyakan gaya tata bahasa regex, termasuk python. Referensi Regexsumber
Dalam regex gaya Python,
\d
cocok dengan digit individu mana pun. Jika Anda melihat sesuatu yang tampaknya tidak melakukan itu, berikan regex lengkap yang Anda gunakan, bukan hanya menggambarkan satu simbol tertentu.sumber
123
.\\d{3}
cocok dengan urutan tiga digit apa pun di Jawa.sumber
\\d+
Ini hanya dugaan, tetapi saya pikir editor Anda benar-benar cocok dengan setiap digit tunggal -
1
2
3
- tetapi hanya kecocokan aneh yang disorot, untuk membedakannya dari kasing ketika seluruh123
string cocok.Sebagian besar konsol regex menyorot pertandingan yang berdekatan dengan warna yang berbeda, tetapi karena pengaturan plugin, batasan terminal atau karena alasan lain, hanya setiap grup lain yang mungkin disorot dalam casing Anda.
sumber
Info tentang .NET / C #:
Info: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in- Regular-expressions#decimal-digit-character-d
sumber