Untuk mulai dengan, saya tidak menyarankan menggunakan "*" di regex. Ya, saya tahu, ini adalah pembatas multi-karakter yang paling banyak digunakan, tetapi bagaimanapun juga itu adalah ide yang buruk. Ini karena, meskipun cocok dengan jumlah pengulangan untuk karakter itu, "any" termasuk 0, yang biasanya merupakan sesuatu yang Anda ingin lontarkan kesalahan sintaksinya, tidak terima. Alih-alih, saya sarankan menggunakan +
tanda, yang cocok dengan pengulangan panjang> 1. Terlebih lagi, dari apa yang saya lihat, Anda berhadapan dengan ekspresi yang dipatenkan dengan panjang tetap. Akibatnya, Anda mungkin dapat menggunakan {x, y}
sintaks untuk secara spesifik menentukan panjang yang diinginkan.
Namun, jika Anda benar-benar membutuhkan pengulangan yang tidak rakus, saya sarankan berkonsultasi dengan yang mahakuasa ?
. Ini, ketika ditempatkan setelah pada akhir setiap specifier pengulangan regex, akan memaksa bagian dari regex untuk menemukan jumlah teks sesedikit mungkin.
Yang sedang berkata, saya akan sangat berhati-hati dengan ?
itu, seperti Sonic Obeng di Dr Who, memiliki kecenderungan untuk melakukan, bagaimana saya harus mengatakannya, "sedikit" hal-hal yang tidak diinginkan jika tidak hati-hati dikalibrasi. Misalnya, untuk menggunakan input contoh Anda, ini akan mengidentifikasi ((1)
(perhatikan kurangnya rparen kedua) sebagai kecocokan.