2017 © Pedro Peláez
 

project php-verbal-expressions

PHP Regular expressions made easy

image

verbalexpressions/php-verbal-expressions

PHP Regular expressions made easy

  • Saturday, June 30, 2018
  • by ionutvmi
  • Repository
  • 129 Watchers
  • 2094 Stars
  • 9,191 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 132 Forks
  • 0 Open issues
  • 2 Versions
  • 4 % Grown

The README.md

Build Status, (*1)

PHPVerbalExpressions

VerbalExpressions is a PHP library that helps to construct hard regular expressions., (*2)

Installation

The project supports Composer so you have to install Composer first, before project setup., (*3)

$ 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 "

". $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:, (*4)

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., (*5)

Other Implementations

You can see an up to date list of all ports on VerbalExpressions.github.io. - Javascript - Ruby - C# - Python - Java - C++, (*6)

Building the project and running the tests

The project supports Composer so you have to install Composer first before project setup., (*7)

curl -sS https://getcomposer.org/installer | php
php composer.phar install --dev
ln -s vendor/phpunit/phpunit/phpunit.php phpunit
./phpunit

The Versions

30/06 2018

dev-master

9999999-dev

PHP Regular expressions made easy

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

08/01 2018

1.0.0

1.0.0.0

PHP Regular expressions made easy

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires