랭킹으로 돌아가기
VerbalExpressions/PHPVerbalExpressions
PHPPHP Regular expressions made easy
verbalexpressionsregular-expression
주요 지표
스타 성장
스타
2.4k
포크
141
주간 성장
—
이슈
2
1k2k
2013년 7월2015년 9월2017년 11월2020년 1월2022년 3월2024년 5월2026년 7월
아티팩트Packagist
composer require verbalexpressions/phpverbalexpressionsREADME
PHPVerbalExpressions
- ported from VerbalExpressions
VerbalExpressions is a PHP library that helps to construct hard regular expressions.
Installation
The project supports Composer so you have to install Composer first, before project setup.
$ composer require verbalexpressions/php-verbal-expressions:dev-master
Examples
<?php
// some tests
require './vendor/autoload.php';
use VerbalExpressions\PHPVerbalExpressions\VerbalExpressions;
$regex = new VerbalExpressions();
$regex->startOfLine()
->then("http")
->maybe("s")
->then("://")
->maybe("www.")
->anythingBut(" ")
->endOfLine();
if ($regex->test("http://github.com")) {
echo "valid url". '<br>';
} else {
echo "invalid url". '<br>';
}
if (preg_match($regex, 'http://github.com')) {
echo 'valid url';
} else {
echo 'invalid url';
}
echo "<pre>". $regex->getRegex() ."</pre>";
echo $regex->clean(array("modifiers" => "m", "replaceLimit" => 4))
->find(' ')
->replace("This is a small test http://somesite.com and some more text.", "-");
More examples are available in the following files:
Business readable language expression definition
$definition = 'start, then "http", maybe "s", then "://", maybe "www.", anything but " ", end';
$regex = new VerbalExpressionsScenario($definition);
Methods list
| Name | Description | Usage |
|---|---|---|
| add | add values to the expression | add('abc') |
| startOfLine | mark expression with ^ | startOfLine(false) |
| endOfLine | mark the expression with $ | endOfLine() |
| then | add a string to the expression | add('foo') |
| find | alias for then | find('foo') |
| maybe | define a string that might appear once or not | maybe('.com') |
| anything | accept any string | anything() |
| anythingBut | accept any string but the specified char | anythingBut(',') |
| something | accept any non-empty string | something() |
| somethingBut | anything non-empty except for these chars | somethingBut('a') |
| replace | shorthand for preg_replace() | replace($source, $val) |
| lineBreak | match \r \n | lineBreak() |
| br | shorthand for lineBreak | br() |
| tab | match tabs \t | tab() |
| word | match \w+ | word() |
| anyOf | any of the listed chars | anyOf('abc') |
| any | shorthand for anyOf | any('abc') |
| range | adds a range to the expression | range(a,z,0,9) |
| withAnyCase | match case default case sensitive | withAnyCase() |
| stopAtFirst | toggles the g modifiers | stopAtFirst() |
| addModifier | add a modifier | addModifier('g') |
| removeModifier | remove a mofier | removeModifier('g') |
| searchOneLine | Toggles m modifier | searchOneLine() |
| multiple | adds the multiple modifier | multiple('*') |
| _or | wraps the expression in an or with the provided value |
_or('bar') |
| limit | adds char limit | limit(1,3) |
| test | performs a preg_match | test('valid@email.com') |
For all the above method (except test) you could use the VerbalExpressionsScenario.
Other Implementations
You can see an up to date list of all ports on VerbalExpressions.github.io.
Building the project and running the tests
The project supports Composer so you have to install Composer first before project setup.
curl -sS https://getcomposer.org/installer | php
php composer.phar install --dev
ln -s vendor/phpunit/phpunit/phpunit.php phpunit
./phpunit
관련 저장소