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 " );
ดูการทดสอบเพื่อดูตัวอย่างเพิ่มเติม