Saya cuba mencari cara untuk memadankan corak dengan regexp.Regexp
menggunakan Go.
Kriteria pertandingan adalah seperti berikut:
FooBar
或其子字符串 Foo
di awal baris, atau tidak sama sekali. S+
)Jadi, ia sepatutnya sepadan, contohnya:
FooABC
FooBarABC
FooBar
(kerana tiada watak lain selepasnya) ABC
(因为它不是以 Foo
)Saya telah mencuba pelbagai ungkapan tetapi seperti tidak dapat memahaminya.
Saya mendapati bahawa mod pandangan ke hadapan negatif wujud dalam pelaksanaan lain, tetapi Go nampaknya tidak menyediakannya. Adakah terdapat cara lain untuk menyelesaikan masalah ini?
Lihat (dikemas kini): https://regex101.com/r/SWSTzv/3
Saya tahu ini jelas boleh diselesaikan tanpa menggunakan regexp
. Walau bagaimanapun, tujuan permintaan ini adalah untuk memahami sama ada masalah ini boleh diselesaikan dengan pelaksanaan stdlib Go. regexp
的情况下解决。然而,这个请求的目的是了解这个问题是否可以通过 Go 的 stdlib 实现来解决。
为什么不直接反转与正则表达式 ^Foo(?:Bar)?$
^Foo(?:Bar)?$
(well, Not just )?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
1 2 3 4 5 6 7 8 |
|
Cuba pada rextester.
Kemas kini
Satu lagi berdasarkan ungkapan biasa dan menggunakan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Atas ialah kandungan terperinci Pergi Regexp: Padankan perkataan penuh atau subrentetan atau tidak sama sekali. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!