ฟังก์ชัน preg_* ในตัวของ Php จำเป็นต้องมีรูปแบบแปลก ๆ เช่น การส่งตัวแปรโดยการอ้างอิง และถือว่าค่า false หรือ null เป็นข้อผิดพลาด spatie/regex มีอินเทอร์เฟซที่สะอาดกว่าสำหรับ preg_match , preg_match_all , preg_replace และ preg_replace_callback
use Spatie Regex Regex ;
// Using `match`
Regex:: match ( ' /a/ ' , ' abc ' ); // `MatchResult` object
Regex:: match ( ' /a/ ' , ' abc ' )-> hasMatch (); // true
Regex:: match ( ' /a/ ' , ' abc ' )-> result (); // 'a'
// Capturing groups with `match`
Regex:: match ( ' /a(b)/ ' , ' abc ' )-> result (); // 'ab'
Regex:: match ( ' /a(b)/ ' , ' abc ' )-> group ( 1 ); // 'b'
// Setting defaults
Regex:: match ( ' /a(b)/ ' , ' xyz ' )-> resultOr ( ' default ' ); // 'default'
Regex:: match ( ' /a(b)/ ' , ' xyz ' )-> groupOr ( 1 , ' default ' ); // 'default'
// Using `matchAll`
Regex:: matchAll ( ' /a/ ' , ' abcabc ' )-> hasMatch (); // true
Regex:: matchAll ( ' /a/ ' , ' abcabc ' )-> results (); // Array of `MatchResult` objects
// Using replace
Regex:: replace ( ' /a/ ' , ' b ' , ' abc ' )-> result (); // 'bbc' ;
Regex:: replace ( ' /a/ ' , function ( MatchResult $ result ) {
return $ result -> result () . ' Hello! ' ;
}, ' abc ' )-> result (); // 'aHello!bc' ;Spatie เป็นเอเจนซี่ออกแบบเว็บไซต์ที่ตั้งอยู่ในเมืองแอนต์เวิร์ป ประเทศเบลเยียม คุณจะพบภาพรวมของโครงการโอเพ่นซอร์สทั้งหมดของเราบนเว็บไซต์ของเรา
เราลงทุนทรัพยากรจำนวนมากเพื่อสร้างแพ็คเกจโอเพ่นซอร์สที่ดีที่สุดในระดับเดียวกัน คุณสามารถสนับสนุนเราได้โดยการซื้อหนึ่งในผลิตภัณฑ์ที่ต้องชำระเงินของเรา
เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณถึงเรา โดยระบุว่าคุณใช้แพ็คเกจใดของเรา คุณจะพบที่อยู่ของเราในหน้าติดต่อของเรา เราเผยแพร่โปสการ์ดที่ได้รับทั้งหมดบนวอลล์โปสการ์ดเสมือนของเรา
คุณสามารถติดตั้งแพ็คเกจผ่านทางผู้แต่ง:
composer require spatie/regex จับคู่รูปแบบของวัตถุ ส่งกลับวัตถุ MatchResult สำหรับการจับคู่แรก
/ * *
* @ param string $ pattern
* @ param string $ subject
*
* @ return Spatie Regex MatchResult
* /
Regex:: match (string $ pattern , string $ subject ): MatchResultMatchResult::hasMatch(): boolตรวจสอบว่ารูปแบบตรงกับวัตถุหรือไม่
Regex:: match ( ' /abc/ ' , ' abc ' )-> hasMatch (); // true
Regex:: match ( ' /def/ ' , ' abc ' )-> hasMatch (); // false MatchResult::result(): string ส่งคืนการแข่งขันเต็มรูปแบบที่ทำขึ้น ส่งคืน null หากไม่มีการจับคู่
Regex:: match ( ' /abc/ ' , ' abc ' )-> result (); // 'abc'
Regex:: match ( ' /def/ ' , ' abc ' )-> result (); // null MatchResult::group(int $id): string ส่งคืนเนื้อหาของกลุ่มที่บันทึก (ด้วยดัชนีแบบ 1) ส่งข้อยกเว้น RegexFailed หากไม่มีกลุ่มอยู่
Regex:: match ( ' /a(b)c/ ' , ' abc ' )-> group ( 1 ); // 'b'
Regex:: match ( ' /a(b)c/ ' , ' abc ' )-> group ( 2 ); // `RegexFailed` exception จับคู่รูปแบบของวัตถุ ส่งกลับวัตถุ MatchAllResult ที่มีรายการที่ตรงกันทั้งหมด
/ * *
* @ param string $ pattern
* @ param string $ subject
*
* @ return Spatie Regex MatchAllResult
* /
public static function matchAll( string $ pattern , string $ subject ): MatchAllResult MatchAllResult::hasMatch(): boolตรวจสอบว่ารูปแบบตรงกับวัตถุหรือไม่
Regex:: matchAll ( ' /abc/ ' , ' abc ' )-> hasMatch (); // true
Regex:: matchAll ( ' /abc/ ' , ' abcabc ' )-> hasMatch (); // true
Regex:: matchAll ( ' /def/ ' , ' abc ' )-> hasMatch (); // false MatchAllResult::results(): array ส่งกลับอาร์เรย์ของวัตถุ MatchResult
$ results = Regex:: matchAll ( ' /ab([a-z])/ ' , ' abcabd ' )-> results ();
$ results [ 0 ]-> result (); // 'abc'
$ results [ 0 ]-> group ( 1 ); // 'c'
$ results [ 1 ]-> result (); // 'abd'
$ results [ 1 ]-> group ( 1 ); // 'd' แทนที่รูปแบบในเรื่อง ส่งกลับวัตถุ ReplaceResult
/ * *
* @ param string | array $ pattern
* @ param string | array | callable $ replacement
* @ param string | array $ subject
* @ param int $ limit
*
* @ return Spatie Regex ReplaceResult
* /
public static function replace( $ pattern , $ replacement , $ subject , $ limit = - 1 ): ReplaceResult ReplaceResult::result(): mixedRegex:: replace ( ' /a/ ' , ' b ' , ' abc ' )-> result (); // 'bbc' Regex::replace ยังใช้งานได้กับ callables ผู้เรียกจะได้รับอินสแตนซ์ MatchResult เป็นอาร์กิวเมนต์
Regex:: replace ( ' /a/ ' , function ( MatchResult $ matchResult ) {
return str_repeat ( $ matchResult -> result (), 2 );
}, ' abc ' )-> result (); // 'aabc' รูปแบบ การแทนที่ และหัวเรื่องสามารถเป็นอาร์เรย์ได้เช่นกัน Regex::replace ทำงานเหมือนกับ preg_replace ในกรณีเหล่านั้นทุกประการ
หากมีสิ่งใดผิดพลาดในวิธี Regex ข้อยกเว้น RegexFailed จะถูกส่งออกไป ไม่จำเป็นต้องตรวจสอบ preg_last_error()
$ composer test โปรดดู CHANGELOG สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เปลี่ยนแปลงเมื่อเร็วๆ นี้
โปรดดูการมีส่วนร่วมเพื่อดูรายละเอียด
โปรดตรวจสอบนโยบายความปลอดภัยของเราเกี่ยวกับวิธีการรายงานจุดอ่อนด้านความปลอดภัย
คุณใช้แพ็คเกจนี้ได้ฟรี แต่ถ้าเหมาะกับสภาพแวดล้อมการใช้งานจริงของคุณ เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณมาให้เรา โดยระบุว่าคุณกำลังใช้แพ็คเกจใดของเรา
ที่อยู่ของเราคือ: Spatie, Kruikstraat 22, 2018 แอนต์เวิร์ป, เบลเยียม
เราเผยแพร่ไปรษณียบัตรที่ได้รับทั้งหมดบนเว็บไซต์ของบริษัทของเรา
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม