Note Regular Expression
2 min readSep 3, 2021
Data Example
17-02-2021 requestId:xxttyy0001 Test1-xxx
17-02-2021 requestId:xxttyy0001 Test1-yyy
17-02-2021 requestId:xxttyy0002 Test2-xxx
17-02-2021 requestId:xxttyy0002 Test2-yyy
17-02-2021 requestId:xxttyy0003 Test3-xxx
17-02-2021 requestId:xxttyy0003 Test3-yyy
17-02-2021 requestId:xxttyy0004 Test4-xxx
17-02-2021 requestId:xxttyy0004 Test4-yyy18-02-2021 requestId:xxttyy0003 Test9-xxx
18-02-2021 requestId:xxttyy0003 Test9-yyy
18-02-2021 requestId:xxttyy0004 Test9-xxx
18-02-2021 requestId:xxttyy0004 Test9-yyy
^ ขึ้นประโยคด้วยคำนี้ (ห้ามมีอะไรนำหน้า)
^
^17-02-2021
>>> Count 8 matches.
$ (จบประโยค) ด้วยคำนี้ ห้ามมีอะไรต่อท้าย
$
Test9-yyy$
>>> Count 2matches.
| (หรือ) ข้อควรระวัง ถ้าในหนึ่งบันทัดนั้นเป็นจริงทั้ง 2 condition จะแสดงผลซ้ำ
|
18-02-2021|Test9-xxx
>>> Count 6 matches.
.*? (และ)
.*?
18-02-2021.*?Test9
>>> Count 4matches.
\n (นับแถว) แถวที่มีค่าเป็น Empty หลายๆแถวนับเป็น 1
\n
>>> Count 12 matches.
^[^n] (นับแถว) ทุกแถวไม่มีข้อมูล ยกเว้นถ้าแถวสุดท้ายไม่มีข้อมูล จะไม่นับ
*** แต่งง ตัวอย่าง n ใส่ค่าอะไรก็ได้ไม่มีผลเฉย
^[^n]
>>> Count 13 matches.
^\h*\R (Remove line empty) ยกเว้นถ้าแถวสุดท้ายไม่มีข้อมูล
^\h*\R
>>> Count 1 matches.
\r\n (Remove Enter)
\r\n
>>> Count 12 matches.
ลองใช้เงื่อนไขรวมๆกันดู ในการแยก Condition จะใช้ () ในการแยก Condition
*** ขึ้นต้นด้วย 18–02–2021 และจบด้วย Test9-yyy
(^18-02-2021.*?)(.*?Test9-yyy$)
>>> Count 2 matches.