Cara Mulai Menggunakan Regex Dengan Aplikasi Pintasan

Selama sebulan terakhir ini, saya telah membahas aplikasi Pintasan dan Automator di iOS dan macOS, masing-masing. Keduanya adalah pembangkit tenaga listrik dalam hal otomatisasi di ekosistem Apple, dan dimulai dengan macOS Monterey Musim Gugur ini, Pintasan akan menjadi aplikasi otomatisasi masuk di semua perangkat Apple. Inilah mengapa saya ingin menghabiskan artikel ini membahas topik yang sangat kuat: Menggunakan regex dengan aplikasi Pintasan.

Meskipun saya memiliki beberapa latar belakang dalam ilmu komputer dan pemrograman, entah bagaimana saya tidak pernah menemukan regex. Mungkin namanya membuat saya takut, atau mungkin itu kodenya, yang merupakan kode yang paling tidak dapat dibaca yang pernah saya lihat.

Apa pun masalahnya, saya memutuskan untuk melihat lebih jauh ke dalam regex setelah membahas aplikasi Pintasan selama beberapa bulan terakhir. Dan apa yang saya temukan adalah bahwa banyak keterbatasan yang saya alami dengan Pintasan, serta Automator, dapat diatasi dengan regex.

Dengan kata lain, bukan karena aplikasi ini kekurangan fitur, tetapi karena saya kurang pendidikan.

Jadi dalam posting hari ini, Anda dan saya akan mempelajari seluk beluk regex bersama-sama. Dengan begitu, Anda bisa mendapatkan hasil maksimal dari masing-masing aplikasi ini.

Kami akan membahas dasar-dasar regex (dimulai dengan apa adanya), apa yang dapat Anda lakukan dengannya di aplikasi Pintasan, beberapa situs web dan sumber daya yang dapat Anda gunakan jika Anda tidak ingin mempelajari regex sendiri, dan kemudian kita akan masuk ke konsep inti dan mekanisme regex bahasa.

Baiklah, mari kita mulai!

Isi

  • Apa ekspresi reguler (yaitu, regex)?
    • Hal-hal yang dapat Anda lakukan dengan regex
  • Bagaimana Anda bisa menggunakan regex dengan aplikasi Pintasan?
  • Gunakan regex101.com untuk menguji ekspresi reguler Anda
  • Jika Anda tidak ingin mempelajari cara menggunakan regex dengan aplikasi Pintasan, baca ini
  • Regex untuk pemula: Mulai gunakan regex dengan Pintasan
    • Apa itu rasa regex?
    • Situs web dan referensi untuk membantu Anda mulai belajar regex dengan Pintasan
    • Cara melakukan pencarian teks dasar menggunakan regex dengan Pintasan
    • Menambahkan komponen variabel ke pencarian regex Anda
    • Rentang dapat memperluas pencarian Anda
    • Cara mengecualikan kata dan karakter dari pencarian regex Anda dengan Pintasan
    • Wildcard dapat memberi Anda lebih banyak opsi pencarian
    • Gunakan quantifier untuk menentukan panjang teks yang Anda cari
    • Ada beberapa quantifier lagi yang ingin Anda ketahui
    • Cari karakter di awal dan akhir string teks
    • Simpan string teks menggunakan fungsi pengelompokan regex dengan Pintasan
  • Sekarang apa?
    • Bagaimana Anda akan memecah ini?
  • Mulai gunakan regex dengan Pintasan untuk membawa otomatisasi Anda ke level selanjutnya
    • Posting terkait:

Apa ekspresi reguler (yaitu, regex)?

Ekspresi reguler, atau "regex", adalah sedikit kode yang dapat Anda gunakan untuk mencari sepotong teks di dalam potongan teks yang lebih besar.

Jika Anda tidak tahu, sepotong teks di dalam teks lain disebut "string" dalam pemrograman. Misalnya, kata 'hijau' adalah rangkaian karakter dari teks "Saya memakai celana hijau hari ini."

Jadi dengan kata lain, regex adalah cara untuk menemukan string teks di badan teks yang lebih besar. Dan karena regex ditulis dalam kode, Anda dapat menggunakannya untuk melakukan beberapa operasi yang cukup rumit.

Misalnya, jika Anda ingin mencari kata “email”, Anda dapat dengan mudah menulis kode regex yang mencari email.

Jika Anda ingin menemukan email yang ada di dalam paragraf, dan tidak tahu persis apa email itu, Anda harus mencari string teks yang diformat seperti email. yaitu, string yang mengikuti "[dilindungi email]formatnya.

Sekarang, katakanlah Anda tidak hanya ingin menemukan satu email dari sebuah paragraf tetapi setiap surel. Mungkin Anda ingin menyalinnya dengan cepat di tempat lain, memperbaruinya ke format baru, atau menggantinya sehingga semuanya mengatakan “[dilindungi email]“.

Saat Anda semakin mahir dan berpengalaman dengan regex, Anda akan dapat melakukan semua hal ini dan banyak lagi.

Hal-hal yang dapat Anda lakukan dengan regex

Baiklah, jadi mungkin contoh dengan email yang baru saja saya berikan tidak begitu praktis. Jangan khawatir – itu jauh dari batas yang dapat Anda capai menggunakan regex dengan aplikasi Pintasan.

Secara umum, semua yang dapat dilakukan regex termasuk dalam salah satu dari empat kategori ini:

  1. Temukan string teks di bagian teks yang lebih besar (yaitu, mencari kata/string/tipe string pada halaman teks).
  2. Konfirmasikan bahwa string teks cocok dengan format yang Anda inginkan (yaitu, memeriksa apakah string teks menggunakan huruf kapital/diurutkan/ditandai dengan benar).
  3. Ganti atau sisipkan teks di area tertentu dari sepotong teks.
  4. Pisahkan string teks pada titik tertentu (mis., Bagi sepotong teks setiap kali ada koma).

Tingkat kedalaman yang dapat Anda gunakan untuk berinteraksi dengan masing-masing jenis fungsi ini dan bagaimana Anda dapat menggabungkannya menjadikan regex alat yang sangat kuat untuk menguraikan dan memanipulasi teks.

Bagaimana Anda bisa menggunakan regex dengan aplikasi Pintasan?

Baiklah, jadi sekarang Anda mudah-mudahan memiliki ide dasar tentang kegunaan regex. Ini adalah jenis kode yang dapat Anda gunakan untuk mencari teks, bahkan jika Anda tidak tahu persis apa teks itu.

Jadi bagaimana ini membantu Anda di Pintasan? Mirip dengan menambahkan skrip ke Pintasan Anda, ini adalah cara untuk beralih dari otomatisasi dasar (Kirimi saya pesan ketika pintu depan terbuka) ke opsi lanjutan (Buat acara kalender untuk rapat saya secara otomatis setiap kali saya menerima email untuk rapat Zoom dari kantor).

Anda dapat menggunakan regex dengan Pintasan untuk memeriksa apakah input sudah benar. Misalnya, jika Anda membuat pintasan yang hanya berfungsi dengan URL, Anda dapat menggunakan ekspresi reguler di awal Pintasan untuk memastikan bahwa pengguna menjalankan otomatisasi pada URL.

Anda dapat menggabungkan regex dengan skrip untuk membuat Pintasan yang kuat. Sebagai contoh, jalan pintas ini menggunakan regex dan skrip untuk mengubah kode batang menjadi URL untuk toko favorit Anda.

Saat menggunakan aplikasi Pintasan di Mac (Musim Gugur 2021 mendatang), Anda dapat menggunakan regex untuk melakukan tindakan batch pada sepotong teks. Misalnya, Anda dapat menyalin semua email dalam teks pilihan sebagai daftar terurut. Atau, Anda dapat mengganti semua nama dalam dokumen dengan karakter “*” untuk memastikan privasi.

Anda bahkan dapat menyalin isi teks dari satu aplikasi, memformat ulang agar sesuai dengan preferensi aplikasi lain, lalu menempelkannya ke aplikasi lain itu, semuanya dengan satu tindakan klik kanan.

Dengan kata lain, regex memberi Anda kendali penuh atas penanganan teks dengan aplikasi Pintasan. Itu mungkin tidak terdengar sangat membantu pada awalnya, tetapi sekarang setelah Anda mengetahuinya, Anda pasti akan mulai memperhatikan berapa banyak Pintasan yang dapat ditingkatkan dengan fitur ini. Dan Anda juga akan melihat bahwa banyak Pintasan bahkan tidak mungkin tanpa regex.

Gunakan regex101.com untuk menguji ekspresi reguler Anda

Setelah Anda mulai menggunakan regex dengan Pintasan, Anda akan mengalami titik frustrasi:

Sangat sulit untuk menguji kode regex Anda. Dan itu tidak unik untuk regex. Menguji apa pun dengan aplikasi Pintasan agak merepotkan. Satu-satunya cara untuk melakukannya adalah dengan menjalankan Pintasan. Metode itu tidak buruk ketika Anda hanya menguji fitur Pintasan bawaan.

Tetapi untuk menguji kode, ini tidak memungkinkan pemeriksaan baris demi baris dan tidak menawarkan banyak umpan balik.

Untuk itu, saya sarankan menggunakan regex101.com. Ini adalah situs tempat Anda dapat mengetikkan kode regex secara real-time. Anda juga dapat mengetik teks ke dalam editor teks di halaman web yang sama. Saat Anda mengetik masing-masing, Anda akan melihat apakah ekspresi reguler Anda berfungsi, mengapa itu berfungsi atau tidak, dan mendapatkan informasi tentang kecocokan yang ditemukan.

regex101.com menggunakan rasa regex yang berbeda dari yang didukung oleh Pintasan (lebih lanjut tentang itu dalam satu menit), tetapi cukup dekat sehingga Anda tidak akan mengalami terlalu banyak masalah.

Menggunakan alat ini sangat bagus karena Anda dapat menulis regex Anda di sana terlebih dahulu, lalu menyalinnya ke aplikasi Pintasan setelah berfungsi sebagaimana dimaksud.

Jika Anda tidak ingin mempelajari cara menggunakan regex dengan aplikasi Pintasan, baca ini

Saya mengerti – tidak semua orang ingin belajar cara menggunakan regex dengan Pintasan. Ini adalah keterampilan, dan itu berarti akan membutuhkan waktu dan latihan. Tidak ada yang sesederhana fitur drag-and-drop lainnya dari aplikasi Shortcuts.

Jangan khawatir! Meskipun Anda tidak akan bisa mendapatkan sebanyak mungkin dari aplikasi Pintasan seperti seseorang yang meluangkan waktu untuk mempelajari regex, masih ada opsi yang tersedia untuk Anda. Yaitu, ada situs dan halaman online di mana orang telah membuat daftar gigitan kode regex yang dapat Anda salin dan tempel ke aplikasi Pintasan.

Berikut adalah beberapa tautan untuk Anda periksa jika Anda tidak ingin belajar regex:

  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
  • https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
  • https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
  • http://www.rexegg.com/regex-cookbook.html

Cukup baca tautan itu dan Anda seharusnya dapat menemukan solusi regex umum untuk Pintasan yang ingin Anda buat. Ini tidak akan menjadi pilihan bebas pendidikan, karena masih perlu sedikit untuk memahami apa yang Anda lihat. Tapi itu jauh lebih sederhana dan solusi ideal untuk seseorang yang tidak punya waktu untuk memasukkan ke dalam regex.

Meskipun demikian, saya harus mengakui bahwa regex tidak terlalu sulit untuk dipelajari, terutama jika Anda memiliki pengalaman dengan kode shell atau pemrograman pemula. Regex terdengar seperti omong kosong bagi saya pada awalnya, tetapi setelah satu jam membaca artikel dan bermain dengan regex101.com, saya dapat mulai menulis regex untuk Pintasan saya.

Ini hanya hal keakraban – setelah Anda melihatnya cukup lama, itu akan berhenti terlihat aneh. Jadi, jika Anda punya waktu dan hanya terintimidasi, jangan!

Regex untuk pemula: Mulai gunakan regex dengan Pintasan

Baiklah, cukup kata pengantarnya! Anda harus memiliki gagasan tentang apa itu regex, apa yang dapat dilakukannya, mengapa Anda harus mempelajarinya, dan informasi yang cukup untuk memutuskan apakah Anda ingin mempelajarinya. Sekarang kita akan masuk ke seluk beluknya.

Ada banyak konten di bawah ini, tapi jangan khawatir! Artikel ini akan lebih menjadi panduan belajar. Saya sarankan membaca sekilas setiap bagian sehingga Anda mendapatkan gambaran tentang mekanisme yang digunakan regex. Ini juga akan membantu Anda memahaminya juga, jika Anda masih bingung tentang apa itu regex.

Setelah Anda membaca sekilas, saya sarankan untuk membuka regex101.com dan bermain dengan masing-masing alat di setiap bagian di bawah ini. Itu akan membantu Anda melihat seperti apa konsep tersebut dalam praktik serta meningkatkan daya ingat Anda. Setelah Anda selesai melakukannya, Anda dapat memperlakukan artikel ini sebagai titik referensi – sesuatu yang dapat Anda kembalikan ketika Anda melupakan bagian-bagian kecil dari regex.

OK mari kita pergi!

Apa itu rasa regex?

Pertama, kita akan melihat rasa regex. Jangan khawatir – ini tidak akan memengaruhi penggunaan regex Anda sehari-hari dengan Pintasan. Itu hanya sesuatu yang harus diperhatikan sebelum Anda memulai.

Ada berbagai versi regex yang dikenal sebagai "rasa". Versi yang berbeda ini masih sangat mirip. Jika Anda bisa belajar membaca dan menulis satu rasa, Anda seharusnya bisa membaca salah satunya. Hanya akan ada sedikit perbedaan dalam bagaimana kode regex Anda harus diformat.

Dalam pemrograman, spesifikasi pemformatan ini dikenal sebagai "sintaks". Anda hanya perlu menulis kode agar kode tersebut dapat dipahami oleh aplikasi tempat Anda menulisnya.

Inilah mengapa sintaks penting

“Hai teman, bagaimana harimu?”

“, apakah akan pergi teman? hari Hei kamu bagaimana”

Kedua kalimat tersebut memiliki kata, karakter, dan spasi yang sama. Hanya satu yang masuk akal, dan itu karena mengikuti sintaks konvensional.

Dalam pengkodean, satu bahasa pemrograman mungkin memahami versi pertama tetapi tidak yang kedua. Namun, untuk bahasa pemrograman lain, yang kedua mungkin masuk akal sementara yang pertama terlihat seperti omong kosong. Namun, bagi seseorang yang bisa berbahasa Inggris, Anda mungkin dapat memahami maksud dari kedua baris tersebut, meskipun seseorang akan membutuhkan sedikit usaha untuk memahami artinya.

Seperti itulah (semacam) rasa regex yang berbeda. Mereka semua akan terlihat sedikit berbeda dan sedikit mirip dengan Anda. Tetapi Anda harus menggunakan rasa yang tepat untuk aplikasi yang Anda gunakan, atau aplikasi itu tidak akan tahu apa yang Anda tulis.

Aplikasi Pintasan memahami rasa regex ICU, jadi itulah rasa yang ingin Anda gunakan. Situs regex101.com memiliki beberapa rasa berbeda yang dapat Anda pilih di sebelah kiri halaman. Itu memang menggunakan PCRE, yang sangat mirip dengan ICU.

Penting untuk diketahui bahwa ada rasa yang berbeda dari regex karena Anda pasti akan menemukan rasa yang berbeda secara online. Jika Anda menemukan sedikit regex yang ingin Anda curi tetapi tidak dapat membuatnya bekerja dengan Pintasan, atau tidak terlihat benar, periksa rasa apa yang tertulis di dalamnya!

Situs web dan referensi untuk membantu Anda mulai belajar regex dengan Pintasan

Hal lain yang ingin saya bahas sebelum kita mulai menjelajahi mekanisme sebenarnya dari penulisan regex adalah sumber daya. Saya sama sekali tidak mengklaim bahwa posting ini adalah sumber lengkap untuk mempelajari regex. Ini hanya dimaksudkan untuk menjadi titik awal yang bermanfaat bagi mereka yang ingin menggunakan regex dengan Pintasan.

Jika Anda ingin mempelajari lebih dalam tentang regex atau merasa bahwa artikel ini tidak memberikan bantuan yang Anda butuhkan, Anda dapat melihat beberapa artikel, panduan, dan alat ini:

  • https://regex101.com – Situs web yang memungkinkan Anda menguji kode regex Anda secara real-time.
  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet – Lembar contekan ketika Anda lupa apa yang dilakukan setiap karakter
  • http://www.rexegg.com – Situs web ini adalah sumber komprehensif untuk mempelajari semua yang perlu Anda ketahui tentang regex. Lihat yang ini jika Anda ingin menjadi mahir dengan regex.
  • https://scottwillsey.com/blog/ios/regex1/ – Ini adalah seri blog empat bagian tentang penggunaan regex dengan Pintasan. Saya mengambil pendekatan yang sangat berbeda dari panduan ini, jadi ini harus menjadi seri pendamping yang bagus untuk artikel ini.
  • Stack Overflow dan Reddit adalah situs web yang bagus untuk membagikan pertanyaan dan kemajuan regex Anda untuk mendapatkan saran dan jawaban.

Sumber daya ini berbeda dari yang tercantum di Jika Anda tidak ingin mempelajari cara menggunakan regex dengan aplikasi Pintasan bagian karena mereka semua akan meminta Anda untuk benar-benar mulai belajar regex. Mereka lebih komprehensif, sementara yang lain hanya titik referensi.

Cara melakukan pencarian teks dasar menggunakan regex dengan Pintasan

Baik! Kami sekarang telah mencapai titik yang ditunggu-tunggu semua orang: Kami akan mempelajari dasar-dasar penggunaan regex dengan Pintasan.

Mari kita mulai dengan pencarian dasar, karena ini adalah hal paling sederhana yang dapat Anda lakukan dengan regex. Seperti yang disebutkan sebelumnya, saya sarankan agar regex101.com dibuka di tab lain sehingga Anda dapat mengikuti.

Pada dasarnya, regex akan mencari (atau cocok) apa pun yang Anda ketik di dalamnya. Misalnya, jika saya mengetik Baik sebagai kode regex saya, ia akan menemukan setiap contoh kata "Baiklah" dalam panduan ini.

Kasus, spasi, dan tanda baca penting. Itu berarti bahwa Baik, Baiklah, Baik!, dan Baik , semua akan menghasilkan hasil yang berbeda.

Dan itu saja! Setiap kali Anda mengetik sesuatu ke dalam pencarian regex tanpa menggunakan karakter khusus apa pun, regex akan cocok dengan apa pun yang sama persis dengan apa pun yang Anda ketikkan.

Ada satu tangkapan! Beberapa karakter pada keyboard Anda juga merupakan karakter regex khusus. Itu berarti bahwa mereka melakukan semacam fungsi dalam kode regex.

NS ? simbol adalah salah satu karakter tersebut. Ini digunakan dalam kode regex sebagai pengukur. Jadi jika Anda mencoba mencari "Baiklah?" dengan mengetik Baik? sebagai kode regex Anda, Anda tidak akan mendapatkan apa yang Anda inginkan.

Untuk memperbaikinya, Anda harus menentukan bahwa Anda ingin menggunakan "?" sebagai string, bukan sebagai karakter khusus. Untuk melakukan itu untuk karakter ini atau lainnya, cukup tambahkan \ simbol tepat sebelum karakter yang properti khususnya ingin Anda batalkan.

Jadi jika Anda ingin mencari "Baiklah?" dengan regex, kode Anda akan terlihat seperti ini:

Baik\?

Jika Anda tidak yakin apakah karakter tertentu diperlakukan sebagai karakter khusus oleh regex, Anda dapat memeriksa lembar contekan ini untuk semua karakter khusus di regex.

Cari lebih dari satu kata menggunakan karakter “atau”

Komponen penting lainnya dalam mencari string dengan regex adalah menggunakan fungsi “atau”. Ini adalah karakter yang dapat Anda tempatkan di antara dua kata/karakter untuk mengatakan, “Cocokkan ini atau ini.”

Misalnya, jika saya ingin mencari isi teks untuk kata “baik” dan “Baiklah”, saya akan menggunakan | karakter. Seperti:

Baiklah | baiklah

Jika Anda kesulitan menemukan | karakter, tahan menggeser tombol ke bawah dan tekan tombol \ kunci. Itu di atas kembali tombol di sebagian besar keyboard.

Menambahkan komponen variabel ke pencarian regex Anda

Oke, jadi sekarang Anda tahu seperti apa regex netral, saatnya untuk mengambil karakter khusus pertama Anda. Itu akan menjadi tanda kurung siku, yang merupakan hal-hal ini [].

Apa pun yang Anda masukkan ke dalam tanda kurung ini akan dianggap sebagai komponen variabel dari pencarian regex Anda. Anda dapat memasukkan karakter dalam tanda kurung sebanyak yang Anda suka, meskipun hanya satu karakter yang valid untuk setiap kecocokan.

Baiklah, kedengarannya agak rumit, tapi tidak! Begini tampilannya dalam praktik:

  • [Baik hanya akan cocok dengan kata "Baiklah". Jenis tidak ada gunanya.
  • [AB] baik akan cocok dengan "Baiklah" dan "Blright".
  • Alr[iouxyz]ght akan cocok dengan “Baiklah”, “Baiklah”, “Baiklah”, “Alrxght”, dan seterusnya.

Anda dapat menggabungkan karakter dalam tanda kurung serta menggunakan beberapa tanda kurung di baris regex yang sama. [AB]r[i1]gh[tuvwxyz] adalah bagian regex yang valid. Namun, mudah-mudahan, itu tidak terlihat semrawut seperti beberapa menit yang lalu!

Rentang dapat memperluas pencarian Anda

Bagian regex berikutnya yang akan berguna dengan Pintasan adalah jangkauannya. Rentang memungkinkan Anda menentukan rentang karakter yang akan Anda terima.

Di bagian sebelumnya, Anda mungkin telah memperhatikan bahwa tanda kurung saya menyertakan banyak huruf berurutan. Terpanjang adalah [tuvwxyz]. Huruf-huruf itu muncul dalam alfabet dalam urutan yang sama, tepat di samping satu sama lain.

Itu berarti saya bisa menggunakan rentang alih-alih mengetiknya. Itu akan terlihat seperti ini:

Baiklah[t-z]

Potongan kode regex ini akan melakukan hal yang sama seperti Oke[tuvwxyz]. Hanya saja lebih rapi dan lebih mudah untuk menulis.

Anda bisa mengganti rentang yang sama dengan [a-z] jika Anda ingin menerima huruf kecil apa pun dari alfabet. Atau Anda bisa menggunakan [0-9] jika Anda ingin menerima nomor satu digit apa pun.

Anda juga dapat menggabungkan rentang dalam kurung yang sama. Misalnya, ini Alr[i-ux-z]ght akan menerima "Baiklah", "Baiklah", "Alrxght", dan "Alryght", tetapi tidak akan menerima "Alraght" atau "Alrvght".

Ada variasi lain dari kata "Baiklah" yang akan diterima oleh kode ini, dan banyak lagi yang tidak. Itu hanya pilihan singkat untuk menjaga semuanya, yah, singkat.

Jika Anda kesulitan memahami apa [i-ux-z] berarti, mungkin membantu untuk melihatnya ditulis seperti ini:

[i-u, x-z]

Itu bukan sintaks regex yang benar – Anda tidak boleh menggunakan koma untuk memisahkan rentang. Tapi mudah-mudahan, itu membantunya lebih masuk akal!

Anda tidak perlu koma di regex untuk memisahkan rentang dan Anda tidak perlu meletakkan rentang tepat di samping satu sama lain. Anda bisa mengubahnya menjadi [i-uabcx-z]. Ini akan menerima rentang yang sama seperti sebelumnya ditambah karakter "a", "b", dan "c".

Cara mengecualikan kata dan karakter dari pencarian regex Anda dengan Pintasan

Oke, jadi sekarang kita sampai di suatu tempat! Jika Anda telah mengikuti artikel ini hingga saat ini, Anda seharusnya dapat melihat kode di bawah ini dan memahami untuk apa kode tersebut cocok:

Ap[p-r]le[Tt]ool[BbLF]ox

Jika Anda dapat membacanya, maka Anda tahu bahwa bagian dari kode regex termasuk banyak kemungkinan variasi kata "AppleToolBox". Jadi bagaimana jika kita ingin mengurangi jumlah variasi yang diterimanya tanpa mengubah jangkauan kita?

Di situlah karakter "tidak" masuk. Ini terlihat seperti ini: ^. Jika Anda kesulitan menemukannya di keyboard Anda (seperti yang saya lakukan), tahan menggeser dan tekan tombol 6 tombol pada keyboard Anda.

Untuk menggunakan ^ karakter, letakkan di awal karakter yang ingin Anda kecualikan.

Ada tangkapan! NS ^ karakter tidak berfungsi di luar fungsi regex. Anda tidak bisa hanya meletakkannya di depan huruf "A" untuk mengecualikannya dari pencarian Anda. Kode regex ^A hanya akan mencari huruf kapital "A".

Sebagai gantinya, gabungkan dengan tanda kurung dan karakter khusus regex lainnya.

Misalnya, jika saya ingin mencari contoh kata "Baiklah" yang tidak dimulai dengan huruf "A", saya akan menggunakan kode [^A]baiklah.

Anda bahkan dapat menggabungkannya dengan rentang! Letakkan saja di awal braket Anda, dan apa pun di dalam braket itu, termasuk rentang, akan dikeluarkan dari pencarian Anda. Seperti:

Bagaimana jika Anda ingin mengecualikan kata tertentu dari pencarian Anda?

Saya kesulitan menemukan informasi ini. Namun, pengguna Stack Overflow memiliki solusinya, dan terlihat seperti ini:

^(?!(kata)$).+$

Ganti saja kata dengan kata apa pun yang ingin Anda kecualikan dari pencarian Anda. Seperti:

Anda dapat membaca posting Stack Overflow itu di sini jika Anda ingin mempelajari lebih lanjut tentang kasus penggunaan khusus ini.

Wildcard dapat memberi Anda lebih banyak opsi pencarian

Itu membawa kita ke wildcard. Karakter wildcard, yang merupakan titik ., digunakan untuk mewakili karakter tunggal apa pun, tidak ada bar. Jika Anda hanya mengetik . sebagai kode regex Anda dengan Pintasan, itu akan mengembalikan setiap karakter dalam badan teks sebagai kecocokan individual.

Saya tidak akan merekomendasikan menggunakannya untuk tujuan itu, tentu saja! Sebagai gantinya, saya sarankan untuk menggunakannya sebagai pengganti satu karakter dalam sebuah kata. Sebagai contoh, Baik.ght akan cocok dengan "Baiklah", "Alrxght", "Alr

Dan itu cukup banyak! Karakter wildcard cukup mudah dimengerti. Ini cocok dengan semuanya! Itu membuatnya berguna untuk menemukan string yang cocok dengan format tertentu sambil memiliki karakter unik.

Email, misalnya, semuanya akan terlihat sangat mirip tanpa harus sama. Karakter pengganti dapat membantu Anda menggabungkan elemen yang Anda tahu akan ada di sana (seperti ".com" dan "@") dengan karakter yang tidak Anda ketahui (seperti "my_email567", iCloud, atau "Gmail").

Kasus penggunaan lain yang menarik adalah menggunakan . karakter untuk menemukan string dengan panjang tertentu.

Misalnya, jika saya ingin menemukan setiap string empat karakter di badan teks, saya bisa menggunakan ... dengan spasi di kedua sisinya.

Dan inilah semua string tujuh karakter dalam teks yang sama:

Perhatikan bahwa ini bukan metode yang sempurna untuk menemukan string dengan panjang tertentu. Seperti yang Anda lihat pada contoh di atas, beberapa string yang tidak boleh cocok, dan beberapa string yang seharusnya diabaikan. Sangat menarik untuk diingat bahwa Anda dapat menggunakan . karakter untuk menghitung karakter.

Juga, ingatlah bahwa . adalah karakter khusus dalam regex. Itu berarti Anda harus menambahkan \ di depannya jika ingin mencari haid. Itu berarti Anda harus menggunakan Baik\. untuk mencocokkan "Baiklah."

Gunakan quantifier untuk menentukan panjang teks yang Anda cari

Baiklah, jadi Anda secara teknis dapat menggunakan . karakter untuk menemukan string yang mengambil sejumlah karakter tertentu. Namun, sebagian besar waktu, Anda ingin lebih spesifik.

Di situlah quantifier masuk. Quantifier memungkinkan Anda menentukan panjang string yang Anda cari saat menggunakan regex dengan Pintasan.

Misalnya, Anda ingin menemukan kata apa pun yang panjangnya khusus tiga huruf. Untuk menentukan itu, Anda ingin menggunakan tanda kurung ini:

{}

Ketika Anda menempatkan tanda kurung ini setelah ini [] tanda kurung, Anda menentukan bahwa Anda menginginkan string yang cocok dengan jumlah karakter di dalamnya {} dan rentang karakter yang ditentukan dalam ini [].

Saya yakin itu tidak masuk akal sekarang, jadi mari kita lihat contohnya!

Katakanlah Anda ingin menemukan tahun yang disebutkan dalam badan teks. Karena satu tahun terdiri dari empat angka (jelas tidak setiap tahun dari semua waktu, ikuti saja saya di sini), Anda dapat menggunakan kode ini untuk mencocokkan tahun dalam teks itu:

[0-9]{4}

Kode ini mengatakan bahwa kita menginginkan string yang terdiri dari karakter dari 0 hingga 9 yang panjangnya khusus empat karakter. Anda dapat melihat bagaimana ia menempatkan string khusus ini di tangkapan layar berikut:

Saya harus mencatat bahwa ada beberapa masalah dengan kode regex ini, dan itu tidak memperhitungkan spasi atau tanda baca. Jadi jika kode menemukan angka yang panjangnya lebih dari empat karakter, seperti “12345678”, ia akan menemukan string “1234” dan string “5678”.

Untuk memperbaiki masalah ini, Anda ingin menambahkan spasi ke awal kode dan tanda kurung setelah {4} yang berisi spasi lain, titik, tanda tanya, koma, dan tanda seru. Dengan cara itu, ia akan mengabaikan deretan angka yang panjang tanpa kehilangan deretan angka yang memiliki tanda baca di ujungnya, bukan spasi.

Anda mungkin juga ingin menggunakan quantifier untuk menentukan lebih dari satu panjang string. Misalnya, mungkin saya ingin menemukan string yang panjangnya empat karakter, tetapi juga tujuh dan sebelas. Inilah yang akan terlihat seperti:

[a-z]{4,7,11}

Ada beberapa quantifier lagi yang ingin Anda ketahui

Ok, jadi masih ada quantifier lainnya! Beberapa quantifier terakhir ini adalah ketika Anda ingin menentukan panjang string tanpa terlalu spesifik.

Misalnya, Anda ingin menemukan string dengan panjang berapa pun yang cocok dengan regex. Seperti sebuah nama! Nama (di negara-negara Barat) dimulai dengan satu huruf kapital dan diakhiri dengan sejumlah huruf kecil secara acak, diikuti dengan spasi. Untuk menemukan nama, Anda akan menulis kode berikut:

[A-Z][a-z]*

[A-Z] menentukan bahwa karakter pertama dari string harus huruf kapital. [a-z]* menentukan bahwa sisa string harus terdiri dari huruf kecil, tetapi tidak peduli berapa banyak huruf yang mengikuti. Dan spasi di akhir berarti akan mengakhiri kecocokan setelah menemukan spasi di akhir huruf kecil.

Kombo emas di regex adalah .*. Itu berarti cocok dengan karakter apa pun tanpa batas. Dengan kata lain, itu akan cocok dengan seluruh isi teks sebagai satu item.

Kuantifier berikutnya yang perlu Anda ketahui adalah +. Yang ini seperti * kecuali bahwa itu tidak akan cocok dengan string dengan karakter nol. * akan cocok dengan panjang string apa pun, yang mencakup string yang tidak memiliki panjang. +, di sisi lain, membutuhkan string dengan setidaknya satu karakter atau lebih.

Terakhir, ada ? pembilang. Ini adalah hal yang aneh. Ini menentukan bahwa string memiliki panjang nol karakter atau panjang satu karakter. Itu saja – tidak ada atau hanya satu. Jadi jika Anda menggunakan kode [a-z]? dengan spasi di awal dan akhir, itu akan mencari satu huruf di dalam badan teks.

Cari karakter di awal dan akhir string teks

Kami mendekati akhir panduan kami tentang penggunaan regex dengan Pintasan! Hanya ada dua jenis kode regex lagi yang akan Anda gunakan dengan Pintasan.

Yang pertama adalah karakter yang memungkinkan Anda untuk mencocokkan string berdasarkan bagaimana mereka memulai dan/atau mengakhiri.

Jika tidak ada dalam tanda kurung, ^ peran karakter berubah dari makna "mengecualikan" menjadi "dimulai dengan". Ini menentukan bahwa string harus dimulai dengan apa pun yang Anda inginkan. Misalnya, jika Anda menulis ^A, yang akan cocok dengan huruf "A" dalam string "Baiklah", "Apple", dan "A".

Namun, itu tidak cocok dengan keseluruhan kata. Untuk itu, Anda perlu mengubahnya menjadi ^A[A-Za-z]*. Itu akan cocok dengan kata pertama dari paragraf/string, selama kata itu dimulai dengan huruf kapital "A".

Sebagai catatan tambahan, Anda dapat menulis [A-Za-z] sebagai [A-z]. Artinya sama saja, saya hanya menemukan bahwa yang pertama sedikit lebih jelas ketika Anda sedang belajar.

Untuk menentukan akhir string, Anda akan ingin menggunakan $ karakter. Ini bekerja sama dengan ^ karakter. Satu-satunya perbedaan adalah Anda menulisnya di akhir tanda kurung/string daripada di awal.

Misalnya, jika Anda ingin menemukan string/paragraf yang diakhiri dengan "le", Anda akan menggunakan kode [A-z]*le$. Itu akan cocok dengan "Tabel", "apel", dan "mampu" selama mereka berada di akhir string atau paragraf.

Regex bahkan akan menolak kecocokan ini jika ada spasi atau tanda baca di akhir string. "Meja." tidak akan cocok dengan kode ini.

Untuk memperbaikinya, Anda dapat memperhitungkan tanda baca. Kode ini menjelaskan berbagai bentuk tanda baca dan spasi yang dapat muncul di akhir string, termasuk tanda baca yang diikuti spasi:

[A-z]*(le[\.\?!, ]?[ ]?)$

Kode tersebut akan cocok dengan “Able”, “table.”, “stable”, dan “capable? “.

Simpan string teks menggunakan fungsi pengelompokan regex dengan Pintasan

Baik! Anda telah mencapai akhir panduan AppleToolBox kami tentang penggunaan regex dengan Pintasan. Hanya ada satu fungsi regex yang tersisa untuk dipelajari, dan itu adalah pengelompokan.

Pengelompokan bisa dibilang fitur paling penting dari regex karena itulah yang memungkinkan Anda melakukan sesuatu dengan kode regex yang Anda tulis. Tanpa itu, regex hanyalah fitur pencarian. Itu hanya dapat memberi tahu Anda jika string ada di dalam teks yang lebih besar, yaitu, itu akan mengembalikan "benar" atau "salah".

Namun, dengan pengelompokan, Anda dapat menyimpan hasil kode regex Anda. Dan itu berarti Anda dapat menyalin kecocokan, menyimpannya dalam variabel, menggantinya dengan teks lain, memodifikasi pemformatannya, dan semua hal lain yang ingin Anda lakukan dengan regex.

Untungnya, pengelompokannya sangat mudah! Masukkan saja apa pun yang ingin Anda kelompokkan dalam tanda kurung (). Apa pun yang Anda masukkan dalam tanda kurung akan diperlakukan sebagai satu kelompok.

Jika Anda meletakkan seluruh baris kode regex di dalam tanda kurung, seperti (.*@.*\..{3}), maka grup itu akan diingat oleh kode Anda, yang akan memungkinkannya untuk dipanggil kembali nanti.

Penting bahwa Anda hanya menggunakan grup kapan pun Anda perlu. Karena disimpan dalam memori, mereka dapat menyebabkan kinerja kode Anda menurun. Simpan grup saat dibutuhkan!

Anda juga dapat menggunakan grup untuk organisasi

Anda juga dapat menggunakan grup untuk mengatur kode regex Anda dengan Pintasan. Saat Anda melakukan ini, grup di dalam tanda kurung tidak akan selalu diingat.

Misalnya, katakan saya ingin mencocokkan kata "Halo", kecuali bahwa saya tidak peduli apa huruf terakhirnya. Ini bisa berupa huruf kecil atau huruf besar atau bahkan angka. "Hell3838djdjajaksks" dan "Halo" harus dihitung sebagai kecocokan. "Neraka", di sisi lain, tidak boleh dihitung.

Untuk membuat ini berfungsi, saya menulis kode Neraka[A-z]|[0-9]+. Tapi inilah hasil yang saya dapatkan:

Alasan itu tidak sesuai dengan yang aku harapkan adalah karena + hanya diterapkan pada [0-9] mengurung. Saya membutuhkannya untuk diterapkan pada kedua tanda kurung.

Selain itu, kode ini mengatakan bahwa saya juga ingin Neraka[A-z]atau[0-9]. Jadi itu cocok untuk kata-kata yang dimulai dengan "Neraka" dan diakhiri dengan huruf, atau mencari rangkaian angka apa pun. Yang sebenarnya saya butuhkan adalah mencocokkan contoh kata "Neraka" yang diakhiri dengan huruf atau angka.

Untuk memperbaikinya, saya dapat menggunakan grup dan menulis ulang kode sebagai Neraka([A-z]|[0-9])+. Sekarang, ia mencari kata "Neraka" diikuti dengan huruf atau angka apa pun. Dan karena + diterapkan pada kedua tanda kurung, dapat berupa kombinasi huruf dan angka apa saja, asalkan ada setidaknya satu huruf atau angka.

Seperti yang Anda lihat pada tangkapan layar di bawah, grup ini menyelesaikan masalah saya tanpa harus menyimpan informasi di dalam grup itu:

Sekarang apa?

Dan itu saja! Itu hampir semua yang ingin Anda ketahui tentang menggunakan regex dengan Pintasan. Mudah-mudahan, Anda merasa cukup percaya diri untuk mulai bereksperimen dengan regex sekarang, bahkan jika itu tidak masuk akal bagi Anda pada awalnya.

Sekarang setelah Anda mengetahui dasar-dasar regex, Anda siap untuk mulai menggunakannya di Pintasan Anda! Pintasan menerima input regex dalam tindakan berikut:

  • Cocokkan Teks
  • Ganti Teks

Dengan menggunakan dua tindakan Pintasan ini, Anda dapat memasukkan regex ke Pintasan Anda.

Pasangkan ini dengan kemampuan otomatisasi Pintasan, dan Anda memiliki alat yang cukup kuat yang Anda inginkan.

Anda dapat menggunakan regex untuk membuat pemformatan teks di Pintasan lebih mudah, untuk menarik informasi dari email, teks, situs web, file, dan acara kalender, buat teks yang mengikuti format tertentu, periksa apakah input telah dimasukkan dengan benar, dan lagi.

Misalnya, Anda ingin mencocokkan email. Mungkin Anda perlu memeriksa bahwa string teks adalah email, atau mungkin Anda ingin menarik email dari badan teks.

Bagaimana Anda akan memecah ini?

Nah, tahukah Anda bahwa struktur dasar sebuah email adalah kombinasi huruf, angka, dan karakter, diikuti dengan simbol “@”, lalu diikuti dengan nama situs web seperti Gmail atau iCloud, yang kemudian diikuti dengan “.com”, “.org”, atau jenis lain dari tiga karakter tingkat atas domain.

Untuk menulisnya di regex, Anda perlu menentukan bahwa Anda menginginkan string dengan panjang setidaknya satu karakter yang segera diikuti dengan simbol “@”, kemudian string lain setidaknya satu karakter, diikuti oleh “.”, lalu diikuti oleh string tiga karakter. Itu akan terlihat seperti ini:

[dilindungi email]+\..{3}

Jika Anda menempelkannya ke Cocokkan Teks atau Ganti Teks tindakan di Pintasan, Anda akan memiliki otomatisasi yang dapat menemukan, menyimpan, dan memanipulasi alamat email.

Anda dapat menggunakan pemecahan masalah semacam ini untuk menghasilkan solusi regex Anda sendiri atau untuk menemukan beberapa yang telah dibuat orang lain secara online!

Mulai gunakan regex dengan Pintasan untuk membawa otomatisasi Anda ke level selanjutnya

Dan itu, teman-teman, memang begitu. Saya harap Anda menikmati mengikuti artikel ini! Ini adalah salah satu bagian yang lebih ambisius yang pernah saya tulis untuk AppleToolBox. Saya harus belajar sendiri regex untuk menulisnya, dan saya berharap dengan melakukannya, saya dapat membantu Anda mempelajarinya.

Menggunakan regex dengan Pintasan tidak berbeda dengan mempelajari cara melakukan hal lain di ponsel cerdas atau komputer Anda. Luangkan waktu dan kesabaran, dan akhirnya, Anda akan sampai di sana.

Untuk panduan, tutorial, dan berita lainnya tentang semua hal tentang Apple, lihat selengkapnya blog AppleToolBox.

Baik [A-Z][a-z]+, sampai jumpa lagi!