Відмінності між версіями «Спецсимволи в регулярному виразі»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
Рядок 158: Рядок 158:
 
         </table>
 
         </table>
 
       </div>
 
       </div>
 +
[[Регулярні вирази в JavaScript]]

Поточна версія на 10:47, 13 травня 2010

Символ Значення
\ Для звичайних символів - робить їх спеціальними. Наприклад, вираз / s / шукає просто символ 's'. А якщо поставити \ перед s, то / \ s / вже позначає пробільний символ. І навпаки, якщо символ спеціальний, наприклад *, то \ зробить його просто звичайним символом "зірочка". Наприклад, / a * / шукає 0 або більше поспіль йдуть символів 'a'. Щоб знайти а із зірочкою 'a *' - поставимо \ перед спец. символом: / a \ * /.
^ Позначає початок вхідних даних. Якщо встановлений прапор багаторядкового пошуку ("m"), то також спрацьовує при початку нової рядка. Наприклад, / ^ A / не знайде 'A' в "an A", але знайде перші 'A' в "An A."
$ <Позначає кінець вхідних даних. Якщо встановлений прапор багаторядкового пошуку, то також спрацює в кінці рядка. Наприклад, / t $ / не знайде 't' в "eater", але знайде - в "eat".
* Позначає повторення 0 або більше разів. Наприклад, / bo * / знайде 'boooo' в "A ghost booooed" і 'b' в "A bird warbled", але нічого не знайде в "A goat grunted".
+ Позначає повторення 1 або більше разів. Еквівалентно (1,). Наприклад, / a + / знайде 'a' в "candy" і все 'a' в "caaaaaaandy"./td>
? Означає, що елемент може як бути присутнім, так і бути відсутнім. Наприклад, / e? Le? / Знайде 'el' в "angel" і 'le' в "angle." Якщо використовується відразу після одного з квантіфікаторов *, +,?, Або (), то задає "нежадібних" пошук (повторення мінімально можлива кількість разів, до найближчого наступного елемента патерну), на противагу "жадібному" режиму за замовчуванням, при якому кількість повторень максимально, навіть якщо наступний елемент патерну теж підходить. Крім того,? використовується в попередньому перегляді, який описаний в таблиці під (?=), (?!), і (?:).
. (Десяткова точка) позначає будь-який символ, крім перекладу рядки: \ n \ r \ u2028 or \ u2029. (Можна використовувати [\ s \ S] для пошуку будь-який символ, включаючи переклади рядків). Наприклад, /. N / знайде 'an' і 'on' в "nay, an apple is on the tree", але не 'nay'.
(x) Знаходить x і запам'ятовує. Це називається "запам'ятовуючі дужки". Наприклад, / (foo) / знайде і запам'ятає 'foo' в "foo bar." Знайдена підрядка зберігається в масиві-результаті пошуку або в наперед визначених властивості об'єкта RegExp: $ 1, ..., $ 9. Крім того, дужки об'єднують те, що в них знаходиться, в єдиний елемент патерну. Наприклад, (abc) * - повторення abc 0 і більше разів.
(?:x) Знаходить x, але не запам'ятовує знайдене. Це називається "незапям’ятовуючи дужки". Знайдена підрядка не зберігається в масиві результатів та властивості RegExp. Як і всі дужки, об'єднують що знаходиться в них в єдиний підпатерн.
x(?=y) Знаходить x, тільки якщо за x слід y. Наприклад, / Jack (? = Sprat) / знайде 'Jack', тільки якщо за ним слідує 'Sprat'. / Jack (? = Sprat | Frost) / знайде 'Jack', тільки якщо за ним слідує 'Sprat' або 'Frost'. Однак, ні 'Sprat' nor 'Frost' не увійдуть в результат пошуку.
x(?!y) Знаходить x, тільки якщо за x не слід y. Наприклад, / \ d + (?! \.) / Знайде число, тільки якщо за ним не слід десяткова крапка. / \ D + (?! \.) /. Exec ("3.141") знайде 141, але не 3.141.
x|y Знаходить x або y. Наприклад, / green | red / знайде 'green' в "green apple" і 'red' в "red apple."
{n} Де n - позитивне ціле число. Знаходить рівно n повторення попереднього елемента. Наприклад, / a (2) / не знайде 'a' в "candy," але знайде обидва a в "caandy," і перші два a в "caaandy."
{n,} Де n - позитивне ціле число. Знаходить n і більш за повторення елементу. Наприклад, / a (2,) не знайде 'a' в "candy", але знайде всі 'a' в "caandy" і в "caaaaaaandy."
{n,m} Де n і m - позитивні цілі числа. Знаходять від n до m повторень елемента.
[xyz] Набір символів. Знаходить будь-який з перелічених символів. Ви можете вказати проміжок, використовуючи тире. Наприклад, [abcd] - те ж саме, що [ad]. Знайде 'b' в "brisket" і 'c' в "ache".
[^xyz] Будь-який символ, крім зазначених у наборі. Ви також можете вказати проміжок. Наприклад, [^ abc] - те ж саме, що [^ ac]. Знайде 'r' в "brisket" і 'h' в "chop."
[\b] Знаходить символ backspace. (Не плутати з \ b.)
\B Позначає не кордон слів. Наприклад, / \ w \ Bn / знайде 'on' в "noonday", а / y \ B \ w / знайде 'ye' в "possibly yesterday."
\cX Де X - буква від A до Z. Позначає контрольний символ в рядку. Наприклад, / \ cM / позначає символ Ctrl-M.
\d знаходить цифру з будь-якого алфавіту (у нас же юнікод). Використовуйте [0-9], щоб знайти тільки звичайні цифри. Наприклад, / \ d / або / [0-9] / знайде '2 'в "B2 is the suite number."
\D Знайде нецифрових символ (усі алфавіти). [^ 0-9] - еквівалент для звичайних цифр. Наприклад, / \ D / або / [^ 0-9] / знайде 'B' в "B2 is the suite number."
\f,\r,\n Відповідні спецсимволи form-feed, line-feed, переклад рядка.
\s Знайде будь-який пробільний символ, включаючи пробіл, табуляцію, переклади рядки і інші юнікодні пробільні символи. Наприклад, / \ s \ w * / знайде 'bar' в "foo bar."
\S Знайде будь-який символ, крім пробільних. Наприклад, / \ S \ w * / знайде 'foo' в "foo bar."
\t Символ табуляції.
\v Символ вертикальної табуляції.
\w Знайде будь-який словесний (латинський алфавіт) символ, включаючи літери, цифри і знак підкреслення. Еквівалентно [A-Za-z0-9_]. Наприклад, / \ w / знайде 'a' в "apple," '5 'в "$ 5.28," і '3' в "3D."
\W Знайде будь-який не-(лат.) словесний символ. Еквівалентно [^ A-Za-z0-9_]. Наприклад, / \ W / і / [^ $ A-Za-z0-9_] / однаково знайдуть '%' в "50%."
\n де n - ціле число. Зворотній посилання на n-у запам'ятовані дужками підрядок. Наприклад, / apple (,) \ sorange \ 1 / знайде 'apple, orange,' в "apple, orange, cherry, peach.". За таблицею є більш повний приклад.
\0 Знайде символ NUL. Не додавайте в кінець інші цифри.
\xhh Знайде символ з кодом hh (2 шестнадцатірічні цифри)
\uhhhh Знайде символ з кодом hhhh (4 шестнадцатірічні цифри).

Регулярні вирази в JavaScript