1

Тема: Допоможіть підібрати строку на співпадіння regEx

Вітаю шановні колеги.
Зіштовхнувся з одним моментов: є regEx умова:

/\WordOne.*WORDTWO\z/

мені потрібно створити самостійно строку, яка б задоволнила б цій умові.
Що стосується першого моменту

WordOne.*

- то з ним все зрозуміло, але повну строку створити не вдаться. Ніколи особливо не працював з регулярними виразами, тому цей момент дається дуже тяжко...
Можете, будь-ласка, допомогти з цим моментом?

2 Востаннє редагувалося koala (30.10.2020 15:57:18)

Re: Допоможіть підібрати строку на співпадіння regEx

Можете погратися на https://www.debuggex.com/ (якщо / на початку і в кінці означають лише початок і кінець регулярки і не її частиною, то не вводьте їх).
Про значення символів можете почитати на https://developer.mozilla.org/uk/docs/W … xpressions
Зверніть увагу на \W і \z.

Подякували: Chemist-i, FakiNyan2

3 Востаннє редагувалося dot (30.10.2020 19:28:08)

Re: Допоможіть підібрати строку на співпадіння regEx

Ctco pan koala pidkynuv, to nepohano, ale, napryklad, ja xotju ne hraty sja i prosto pohljanuty na umovy. Ctco dectco dyvno, bo sam vin pidpysanyj jak «ljinyva tvarynka».

Je dekotri osjidky, jak ot regexr.com, kotri pojasnjujutj requljarku. Ukrajynsjka ne vsjudy, ctco gurba, tomu tam pojaska bude Anqlijsjkoju.

Dlja prykladu zabyv vace dobro tudy i batcu unyzu (pry natysku, dodatkova pojaska ljivorutc):

\W // = [^A-Za-z0-9_] Ne slovo. Vid sebe zauvagu, ge «slovo» tut ne v prjamomu rozuminji, bo stosuje sja lyce tcystoji latynky (tak-tak, povna dyskyminatsija), tsyfry i pidresky.
ordOne
.  // = [^\n\r] Budj-jakyj symbol, krim «novyj rjadok»
*  // Povtorjuje bezkinetcno poperednju zadatcu do nastupnoji, tobto povtir moge buty nuljovym.
ORDTWO
\z // «Urjatovanyj znak», bo djijy «\z» nemaje, a otge totognjo «z». V tsjomu potrjiby nemaje.

Ot i pidstavjajte te, ctco pidxode pid taki vymohy.

Je ctce takyj osjidok, kotryj detaljno pojasnjuje pro requljarku: regular-expressions.info.

I pro vsjak zauvaha: ne spivpadinje, a zbih.

Подякували: leofun011

4

Re: Допоможіть підібрати строку на співпадіння regEx

Почав гуглити той \z у регексах. Схоже, в JS його або нема, або, принаймні, є не у всіх реалізаціях — якоїсь документації про цей код у JS не знайшлось. Проте, в реалізаціях регексів, використовуваних іншими мовами, такий код зустрічається.

https://www3.ntu.edu.sg/home/ehchua/pro … ml#zz-2.11

\A and \Z: The \A matches the start of the input. The \Z matches the end of the input.
They are different from ^ and $ when it comes to matching input with multiple lines. ^ matches at the start of the string and after each line break, while \A only matches at the start of the string. $ matches at the end of the string and before each line break, while \Z only matches at the end of the string.

https://www.regular-expressions.info/anchors.html

Because Perl returns a string with a newline at the end when reading a line from a file, Perl’s regex engine matches $ at the position before the line break at the end of the string even when multi-line mode is turned off. Perl also matches $ at the very end of the string, regardless of whether that character is a line break. So ^\d+$ matches 123 whether the subject string is 123 or 123\n.

Most modern regex flavors have copied this behavior. That includes .NET, Java, PCRE, Delphi, PHP, and Python. This behavior is independent of any settings such as “multi-line mode”.

In all these flavors except Python, \Z also matches before the final line break. If you only want a match at the absolute very end of the string, use \z (lowercase z instead of uppercase Z). \A\d+\z does not match 123\n. \z matches after the line break, which is not matched by the shorthand character class.

In Python, \Z matches only at the very end of the string. Python does not support \z.

У двох словах: приблизно те ж саме, що й $ (кіфнець рядка), з відмінностями в роботі, якщо оброблюваний рядок містить символ '\n'.

Подякували: leofun011