Saya tidak memiliki banyak pengalaman dengan JavaScript, tetapi saya mencoba membuat sistem tag yang, alih-alih menggunakan @
atau #
, akan menggunakan /
.
var start = /#/ig; // @ Match
var word = /#(\w+)/ig; //@abc Match
Bagaimana saya bisa menggunakan /
file #
. Saya sudah mencoba melakukan var slash = '/'
dan menambahkan + slash +
, tetapi gagal.
javascript
regex
iBrazilian2
sumber
sumber
Jawaban:
Anda bisa menghindarinya seperti ini.
/\//ig; // Matches /
atau cukup gunakan indexOf
if(str.indexOf("/") > -1)
sumber
Anda perlu melarikan diri
/
dengan a\
./\//ig // matches /
sumber
Jika Anda ingin menggunakan,
/
Anda perlu menghindarinya dengan file\
var word = /\/(\w+)/ig;
sumber
Dalam ekspresi reguler, "/" adalah karakter khusus yang perlu di-escape (AKA ditandai dengan menempatkan \ sebelumnya sehingga meniadakan fungsi khusus yang mungkin dilayaninya).
Inilah yang Anda butuhkan:
var word = /\/(\w+)/ig; // /abc Match
Baca tentang karakter khusus RegEx di sini: http://www.regular-expressions.info/characters.html
sumber
Anda juga dapat mengatasi penanganan JS khusus untuk garis miring ke depan dengan melampirkannya dalam grup karakter, seperti:
const start = /[/]/g; "/dev/null".match(start) // => ["/", "/"] const word = /[/](\w+)/ig; "/dev/null".match(word) // => ["/dev", "/null"]
sumber
/[/]/
secara visual membedakan pembatas akhir dengan lebih jelas daripada/\//
./[/]/
lebih mudah dibaca dan berfungsi, tetapi sayangnya, beberapa validator RegEx akan melaporkan "Pembatas yang tidak lolos harus di-escape dengan garis miring terbalik" bahkan di dalam grup karakter . Jadi, saya telah beralih kembali ke/\//
bentuk jelek .Anda dapat menghindarinya dengan mendahului dengan
\
(membuat\/
), atau Anda dapat menggunakannew RegExp('/')
untuk menghindari keluar dari regex .Lihat contoh di JSFiddle .
'/'.match(/\//) // matches / '/'.match(new RegExp('/') // matches /
sumber
Bagi saya, saya mencoba untuk mencocokkan
/
di kencan di C #. Saya melakukannya hanya dengan menggunakan(\/)
:string pattern = "([0-9])([0-9])?(\/)([0-9])([0-9])?(\/)(\d{4})"; string text = "Start Date: 4/1/2018"; Match m = Regex.Match(text, pattern); if (m.Success) { Console.WriteLine(match.Groups[0].Value); // 4/1/2018 } else { Console.WriteLine("Not Found!"); }
JavaScript juga harus dapat digunakan dengan cara yang sama
(\/)
.sumber
Saya mengalami dua masalah yang terkait dengan hal tersebut di atas, saat mengekstrak teks yang dibatasi oleh
\
dan/
, dan menemukan solusi yang cocok untuk keduanya, selain menggunakannew RegExp
, yang memerlukan\\\\
di awal. Temuan ini ada di Chrome dan IE11.Ekspresi reguler
/\\(.*)\//g
tidak bekerja. Saya pikir
//
itu ditafsirkan sebagai awal dari komentar meskipun karakter melarikan diri. Ekspresi reguler (sama-sama valid dalam kasus saya meskipun tidak secara umum)tidak berhasil. Saya pikir yang kedua
/
menghentikan ekspresi reguler meskipun ada karakter melarikan diri.Apa yang berhasil bagi saya adalah merepresentasikan
/
sebagai\x2F
, yang merupakan representasi heksadesimal dari/
. Saya pikir itu lebih efisien dan dapat dimengerti daripada menggunakannew RegExp
, tetapi tentu saja perlu komentar untuk mengidentifikasi kode hex.sumber
Forward Slash adalah karakter khusus jadi, Anda harus menambahkan garis miring terbalik sebelum garis miring untuk membuatnya berfungsi
$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/";
di mana / mewakili pencarian / Dengan cara ini Anda
sumber