Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/VerbalExpressions/PHPVerbalExpressions
PHP Regular expressions made easy
https://github.com/VerbalExpressions/PHPVerbalExpressions
regular-expression verbalexpressions
Last synced: about 1 month ago
JSON representation
PHP Regular expressions made easy
- Host: GitHub
- URL: https://github.com/VerbalExpressions/PHPVerbalExpressions
- Owner: VerbalExpressions
- License: mit
- Created: 2013-07-22T17:55:17.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2020-06-13T05:13:01.000Z (over 4 years ago)
- Last Synced: 2024-10-29T15:40:05.194Z (about 1 month ago)
- Topics: regular-expression, verbalexpressions
- Language: PHP
- Homepage:
- Size: 81.1 KB
- Stars: 2,410
- Watchers: 124
- Forks: 144
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-php-cn - PHPVerbalExpressions - 更优雅的书写正则方式,就像 SQL (目录 / 字符串 Strings)
- php-awesome - PHPVerbalExpressions - 更优雅的书写正则方式,就像 SQL Builder 一样 (类库 / 文本处理)
README
[![Build Status](https://travis-ci.org/VerbalExpressions/PHPVerbalExpressions.svg)](https://travis-ci.org/VerbalExpressions/PHPVerbalExpressions)
## PHPVerbalExpressions
- ported from [VerbalExpressions](https://github.com/VerbalExpressions/JSVerbalExpressions)VerbalExpressions is a PHP library that helps to construct hard regular expressions.
## Installation
The project supports Composer so you have to install [Composer](http://getcomposer.org/doc/00-intro.md#installation-nix) first, before project setup.```sh
$ composer require verbalexpressions/php-verbal-expressions:dev-master
```## Examples
```php
startOfLine()
->then("http")
->maybe("s")
->then("://")
->maybe("www.")
->anythingBut(" ")
->endOfLine();if ($regex->test("http://github.com")) {
echo "valid url". '
';
} else {
echo "invalid url". '
';
}if (preg_match($regex, 'http://github.com')) {
echo 'valid url';
} else {
echo 'invalid url';
}echo "
". $regex->getRegex() ."";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:
- [Example.php](Example.php)
- [VerbalExpressionsTest.php](tests/VerbalExpressionsTest.php)### Business readable language expression definition
```PHP
$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('[email protected]')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](http://VerbalExpressions.github.io).
- [Javascript](https://github.com/jehna/VerbalExpressions)
- [Ruby](https://github.com/VerbalExpressions/RubyVerbalExpressions)
- [C#](https://github.com/VerbalExpressions/CSharpVerbalExpressions)
- [Python](https://github.com/VerbalExpressions/PythonVerbalExpressions)
- [Java](https://github.com/VerbalExpressions/JavaVerbalExpressions)
- [C++](https://github.com/VerbalExpressions/CppVerbalExpressions)## Building the project and running the tests
The project supports Composer so you have to install [Composer](https://getcomposer.org/doc/00-intro.md#installation-nix) 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