זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/advanced-python3/lessons/parsing-ifconfig
זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/advanced-python3/lessons/parsing-ifconfig
שלום ינון,
רציתי לשאול מה עושה הפונקציה re.compile?
תודה מראש.
הי אדם,
בעבודה עם ביטוי רגולארי המחשב לוקח את הביטוי עצמו (שהוא טקסט), הופך אותו לאוביקט בזיכרון שאיתו הוא יכול לבדוק מחרוזות (תהליך שנקרא compilation) ואז משתמש באוביקט הזה בזיכרון כדי לבדוק טקסטים. פייתון מאפשרת לבצע את שני השלבים האלה ״במכה אחת״ או בנפרד.
הפקודה הבאה מבצעת קומפילציה של ביטוי רגולרי וגם בודקת אם מחרוזת מתאימה לביטוי:
import re
re.search('l+', 'hello')
דרך אחרת היא לשבור את הפעולה ל-2 כמו שממחישה התוכנית הבאה, שעושה בדיוק את אותו דבר רק נותנת לך ״נקודת התערבות״ אחרי הקומפילציה של הביטוי:
import re
scanner = re.compile('l+')
scanner.search('hello')
עכשיו לשאלה שלך-
הפונקציה re.compile
מחזירה את אוביקט הביטוי הרגולרי, מה שקראתי כאן scanner
איתו אפשר לבדוק מחרוזות. שמירת אוביקט זה במשתנה נפרד נותנת שני יתרונות:
-
שיפור ביצועים כשאתה מחפש את אותו ביטוי רגולרי בכמה מחרוזות (כי מבצעים את הקומפילציה רק פעם אחת).
-
סדר בקוד ואפשרות להפריד בין ״קוד הביטוי הרגולרי״ לבין הקוד שמשתמש בו כדי לזהות תבניות במחרוזות.
יש אופציה לעשות דבר דומה גם על ווינדוס
הי,
ב Windows המצב קצת שונה כי התוכנית ifconfig לא קיימת. במקומה יש תוכנית בשם ipconfig
. אני חושב שזה יכול להיות תרגיל טוב לנסות ליישם את אותו קוד על Windows.
בתור התחלה תפעיל ipconfig משורת הפקודה כדי לראות את מבנה הפלט שלו.
לאחר מכן תהפוך כל אחת מהשורות שמעניינות אותך לביטוי רגולארי (בדיוק כמו שהראיתי בוידאו), וכך תוכל למשוך מתוך הפלט את הקטעים שמעניינים אותך.
אם אתה מסתבך מוזמן לפרסם פה את מה שכתבת ואנסה לעזור
בהצלחה
ליתר דיוק מדובר בIPCONFIG /ALL
Windows IP Configuration
Host Name . . . . . . . . . . . . : DESKTOP-VTLVT3V
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : Home
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet
Physical Address. . . . . . . . . : 00-25-B3-72-9D-EC
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . : Home
Description . . . . . . . . . . . : Intel(R) WiFi Link 5100 AGN
Physical Address. . . . . . . . . : 00-21-6B-1A-AD-BA
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::8099:f61:d2aa:5aab%3(Preferred)
IPv4 Address. . . . . . . . . . . : 10.0.0.13(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : יום ראשון 12 אפריל 2020 13:17:30
Lease Expires . . . . . . . . . . : יום ראשון 12 אפריל 2020 17:07:44
Default Gateway . . . . . . . . . : 10.0.0.138
DHCP Server . . . . . . . . . . . : 10.0.0.138
DHCPv6 IAID . . . . . . . . . . . : 50340203
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-26-0C-36-28-00-25-B3-72-9D-EC
DNS Servers . . . . . . . . . . . : 10.0.0.138
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Bluetooth Network Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
Physical Address. . . . . . . . . : 00-24-7E-9F-F4-D6
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.Home:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : Home
Description . . . . . . . . . . . : Microsoft ISATAP Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter Teredo Tunneling Pseudo-Interface:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Teredo Tunneling Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : 2001:0:2851:782c:46b:119:2a68:d1de(Preferred)
Link-local IPv6 Address . . . . . : fe80::46b:119:2a68:d1de%8(Preferred)
Default Gateway . . . . . . . . . : ::
DHCPv6 IAID . . . . . . . . . . . : 268435456
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-26-0C-36-28-00-25-B3-72-9D-EC
NetBIOS over Tcpip. . . . . . . . : Disabled
מדויק נראה תרגיל טוב. רוצה להתחיל ואני אעזור אם תיתקע?