regexpbuilderphp
2.1.1
____ _____ ____ _ _ _ ____ _ _ ____
| _ ___ __ _| ____|_ ___ __ | __ ) _ _(_) | __| | ___ _ __| _ | | | | _
| |_) / _ / _` | _| / / '_ | _ | | | | | |/ _` |/ _ '__| |_) | |_| | |_) |
| _ < __/ (_| | |___ > <| |_) | |_) | |_| | | | (_| | __/ | | __/| _ | __/
|_| ____|__, |_____/_/_ .__/|____/ __,_|_|_|__,_|___|_| |_| |_| |_|_|
|___/ |_|
منفذ PHP الخاص بـ regexpbuilderjs
يقوم RegExpBuilder بدمج التعبيرات العادية في لغة البرمجة، مما يسهل قراءتها وصيانتها. يتم إنشاء التعبيرات العادية باستخدام الأساليب المتسلسلة والمتغيرات مثل المصفوفات أو السلاسل.
composer req gherkins/regexpbuilderphp
أو قم بتنزيل الإصدار المناسب واطلب RegExpBuilder.php
و RegExp.php
من /src
.
https://github.com/gherkins/regexpbuilderphp/wiki
use Gherkins RegExpBuilderPHP ;
$ builder = new RegExpBuilder ();
$ regExp = $ builder
-> startOfInput ()
-> exactly ( 4 )-> digits ()
-> then ( " _ " )
-> exactly ( 2 )-> digits ()
-> then ( " _ " )
-> min ( 3 )-> max ( 10 )-> letters ()
-> then ( " . " )
-> anyOf ( array ( " png " , " jpg " , " gif " ))
-> endOfInput ()
-> getRegExp ();
//true
$ regExp -> matches ( " 2020_10_hund.jpg " );
$ regExp -> matches ( " 2030_11_katze.png " );
$ regExp -> matches ( " 4000_99_maus.gif " );
//false
$ regExp -> matches ( " 123_00_nein.gif " );
$ regExp -> matches ( " 4000_0_nein.pdf " );
$ regExp -> matches ( " 201505_nein.jpg " );
$ regExp = $ builder
-> multiLine ()
-> globalMatch ()
-> min ( 1 )-> max ( 10 )-> anythingBut ( " " )
-> anyOf ( array ( " .pdf " , " .doc " ))
-> getRegExp ();
$ text = ' Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy SomeFile.pdf eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua. At vero eos et accusam
et justo duo dolores et ea rebum. doc_04.pdf Stet clita kasd File.doc. '
$ matches = $ regExp -> findIn ( $ text );
//true
( $ matches [ 0 ] === " SomeFile.pdf " );
( $ matches [ 1 ] === " doc_04.pdf " );
( $ matches [ 2 ] === " File.doc " );
$ regExp = $ builder
-> min ( 1 )
-> max ( 10 )
-> digits ()
-> getRegExp ();
$ text = " 98 bottles of beer on the wall " ;
$ text = $ regExp -> replace (
$ text ,
function ( $ match ) {
return ( int ) $ match + 1 ;
}
);
//true
( " 99 bottles of beer on the wall " === $ text );
$ a = $ builder
-> startOfInput ()
-> exactly ( 3 )-> digits ()
-> anyOf ( array ( " .pdf " , " .doc " ))
-> endOfInput ();
$ b = $ builder
-> getNew ()
-> startOfInput ()
-> exactly ( 4 )-> letters ()
-> then ( " .jpg " )
-> endOfInput ();
$ regExp = $ builder
-> getNew ()
-> eitherFind ( $ a )
-> orFind ( $ b )
-> getRegExp ();
//true
$ regExp -> matches ( " 123.pdf " );
$ regExp -> matches ( " 456.doc " );
$ regExp -> matches ( " bbbb.jpg " );
$ regExp -> matches ( " aaaa.jpg " );
//false
$ regExp -> matches ( " 1234.pdf " );
$ regExp -> matches ( " 123.gif " );
$ regExp -> matches ( " aaaaa.jpg " );
$ regExp -> matches ( " 456.docx " );
ألق نظرة على الاختبارات لمزيد من الأمثلة