Регулярний вираз - починаючи і закінчуючи рядком символів


79

Я хотів би написати регулярний вираз, який починається з рядка "wp" і закінчується рядком "php", щоб знайти файл у каталозі. Як це зробити?

Приклад файлу: wp-comments-post.php


4
Тут є хороший підручник тут: regular-expressions.info/tutorial.html
Казимир та Іпполіт

Чому регулярний вираз? Чи не скоріше ви скористаєтесь глобізмом при пошуку файлів?
Тім Пітцкер,

2
Як би ви це зробили, використовуючи глобінг?
Ken Shoufer

Відповіді:


116

Це має зробити це за вас ^wp.*php$

Матчі

wp-comments-post.php
wp.something.php
wp.php

Не відповідає

something-wp.php
wp.php.txt

48

^wp.*\.php$ Повинен зробити трюк.

.*Чи означає «будь-який символ, повторюється 0 або більше разів». Наступний .не використовується, оскільки це спеціальний символ, і вам потрібен буквальний період (".php"). Не забувайте, що якщо ви вводите це як літеральний рядок у щось на зразок C #, Java тощо, вам потрібно уникнути зворотної скісної риски, оскільки це особливий символ у багатьох літеральних рядках.


Це також має спрацювати: ^ wp. + \. Php $ Єдина різниця - '+', що робить крапку "жадібною".
Адам Хауелл

10
@AdamHowell +і *обидва жадібні, хоча жадібність у цьому випадку не впливає. Різниця полягає в тому, що *збігається з нулем або більше символів, а +збігається з одним або кількома символами. Отже, якщо хтось хотів відповідати "wp.php", він повинен використовувати *; якщо вони спеціально хотіли не відповідати цьому, вони повинні використовувати +.
Мішель

8

Приклад: ajshdjashdjashdlasdlhdlSTARTasdasdsdaasdENDaknsdklansdlknaldknaaklsdn

1) START\w*END return: STARTasdasdsdaasdEND - надасть вам слова між START і END

2) START\d*END return: START12121212END - дасть вам цифри між START і END

3) START\d*_\d*END return: START1212_1212END - дасть вам цифри між START і END закінчуючи _

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.