דוגמאות של Python Regex

Dwgm Wt Sl Python Regex



הצורה המלאה של ביטוי רגולרי היא ביטוי רגולרי. זוהי תכונה חשובה של כל שפת תכנות. זוהי תבנית מחרוזת המשמשת להתאמה, חיפוש או החלפה של המחרוזות בערך מחרוזת. ניתן להשתמש בדפוס ה-Regex בסקריפט של Python באמצעות מודול 're' של Python. למודול זה יש סוגים רבים של פונקציות לביצוע פעולות מחרוזות שונות. מטא-תווים שונים ורצפים מיוחדים משמשים להגדרת תבניות הביטוי הרגולרי לחיפוש או החלפת המשימות. מטרות השימוש בכמה תווים מטא-תווים נפוצים, רצפים מיוחדים ושיטות ביטוי רגולריות בסקריפט Python מוצגות במדריך זה.

כמה מטא-תווים נפוצים ב-Regex:









דמויות מַטָרָה
'+' הוא משמש כדי להתאים מופע אחד או יותר של תו מסוים במחרוזת.
'*' הוא משמש כדי להתאים אפס מופעים או יותר של תו מסוים במחרוזת.
'?' הוא משמש כדי להתאים אפס או מופע אחד של תו מסוים במחרוזת.
'^' הוא משמש כדי להתאים את התו או המחרוזת הספציפיים בתחילת המחרוזת.
'$' הוא משמש כדי להתאים את התו או המחרוזת המסוימים בסוף המחרוזת.
'|' הוא משמש כדי להתאים כל אחת מהמחרוזות המרובות במחרוזת. זה עובד כמו היגיון OR.
'[]' הוא משמש כדי להתאים מגוון של תווים.
'{}' הוא משמש כדי להתאים מספר מסוים של תווים.



כמה רצפים מיוחדים הנפוצים ב-Regex:





רצפים מַטָרָה
'\א' הוא משמש כדי להתאים את התו המסוים בתחילת המחרוזת. זה עובד כמו התו '^'.
'\b', '\B' ה-'\b' משמש כדי להתאים את המחרוזת המכילה את התו או המילה המסוימים בתחילת או בסוף המחרוזת. ה-'\B' פועל הפוך ל-'\b'.
'\d', '\D' ה-'\d' משמש כדי להתאים את המספר העשרוני במחרוזת הדומה ל-'[0-9]'. ה-'\D' פועל הפוך ל-'\d'.
'\s', '\S' ה-'\s' משמש כדי להתאים את הרווח הלבן במחרוזת הדומה ל-'[\n\t\r\v]'. ה-'\S' פועל הפוך ל-'\s'.
'\w', '\W' ה-'\w' משמש כדי להתאים את התווים האלפביתיים והמספריים במחרוזת. ה-'\W' פועל הפוך ל-'\w'.
'\עם' הוא משמש כדי להתאים את התו המסוים בסוף המחרוזת. זה עובד כמו התו '$'.

דוגמה 1: התאם את המחרוזת באמצעות הפונקציה Match()

הפונקציה match() משמשת להתאמת דפוס ביטוי רגולרי בתחילת המחרוזת. התחביר של פונקציה זו ניתן באופן הבא:



תחביר:

התאמה מחדש ( דפוס, מחרוזת, דגלים = 0 )

כאן, הארגומנט הראשון משמש להגדרת תבנית הביטוי הרגולרי. הארגומנט השני משמש להגדרת המחרוזת הראשית. הארגומנט השלישי הוא אופציונלי ומשמש להגדרת סוגים שונים של דגלים.

צור קובץ Python עם הסקריפט הבא התואם דפוס regex עם מחרוזת מוגדרת באמצעות הפונקציה match() . ראשית, נעשה שימוש בתבנית רגקס מוגדרת כדי להתאים. לאחר מכן, מילת חיפוש נלקחת מהמשתמש ומשמשת כתבנית ביטוי רגולרית שתתאים לערך המחרוזת. אם נמצאה התאמה כלשהי, מילת החיפוש מודפסת. אחרת, המחרוזת 'לא נמצא ערך תואם' תודפס.

#ייבוא ​​המודול הדרוש
ייבוא ​​מחדש

#הגדר את הפונקציה להדפסת התוצאה המתאימה
def matchString ( ) :
#בדוק את ערך ההחזרה של הפונקציה match()
אם ביחד עם ! = אין:
הדפס ( ''' + mat.group ( ) + '' נמצא ב-' + strValue + ''' )
אַחֵר:
הדפס ( 'לא נמצא ערך תואם.' )

#הגדר את ערך המחרוזת
strValue = 'ראשון בחוץ ראשון'.
#תאם את המחרוזת על סמך התבנית
mat = התאמה מחדש ( '^ראשון' , strValue )
#פונקציית התקשרות להדפסת תוצאת ההתאמה
matchString ( )

#קח את מחרוזת החיפוש
inValue = קלט ( 'הזן את ערך החיפוש:' )
mat = התאמה מחדש ( inValue + , strValue )
#פונקציית התקשרות להדפסת תוצאת ההתאמה
matchString ( )

הפלט הבא מופיע עבור ערך הקלט 'הראשון':

דוגמה 2: מצא את המחרוזת באמצעות הפונקציה Findall()

הפונקציה findall() משמשת להחזרת כל המילים התואמות שנמצאות במחרוזת הראשית בתור tuple.

תחביר:

re.findall ( דפוס, מחרוזת, דגלים = 0 )

כאן, הארגומנט הראשון משמש להגדרת תבנית הביטוי הרגולרי. הארגומנט השני משמש להגדרת המחרוזת הראשית. הארגומנט השלישי הוא אופציונלי ומשמש להגדרת סוגים שונים של דגלים.

צור קובץ Python עם הסקריפט הבא שלוקח מהמשתמש ערך מחרוזת ראשית וערך מחרוזת חיפוש. לאחר מכן, השתמש במילת החיפוש  בתבנית הביטוי הרגולרי כדי למצוא את מילת החיפוש במחרוזת הראשית. מספר ההתאמות הכולל מודפס בפלט.

#ייבוא ​​המודול הדרוש
ייבוא ​​מחדש

#קח ערך מחרוזת
inValue = קלט ( 'הזן מחרוזת:' )

#קח מילת חיפוש
srcValue = קלט ( 'הזן מילת חיפוש: ' )

#חפש את המילה במחרוזת
srcResult = re.findall ( srcValue + '\In*' , בערך )
#הדפס את תוצאת החיפוש
הדפס ( 'המילה '' + srcValue + '' נמצא במחרוזת'
+ str ( רק ( srcResult ) ) + 'פעמים.' )

לפי הפלט, מילת החיפוש 'לאכול' נמצאת פעמיים במחרוזת הראשית 'אנחנו אוכלים כדי לחיות ולא חיים כדי לאכול'.

דוגמה 3: חפש את המחרוזת באמצעות הפונקציה Search()

החיפוש() הוא פונקציה נוספת לחיפוש דפוס מסוים בערך מחרוזת. הוא מכיל את אותם ארגומנטים כמו הפונקציות match() ו-findall(). צור קובץ Python עם הסקריפט הבא שמחפש את המילה 'Python' בערך מחרוזת שייקח מהמשתמש. אם מילת החיפוש קיימת בערך הקלט, מודפסת הודעת הצלחה. אחרת, מודפסת הודעת כשל.

#ייבוא ​​מודול מחדש
ייבוא ​​מחדש

#קח ערך מחרוזת
inValue = קלט ( 'הזן מחרוזת:' )
#חפש את המילה הספציפית בערך המחרוזת
srcResult = re.search ( ר 'Python\w*' , בערך )

#בדוק אם מילת החיפוש נמצאה או לא
אם srcResult:
הדפס ( ''' + srcResult.group ( ) + '' נמצא ב-' + inValue + ''' )
אַחֵר:
הדפס ( 'מחרוזת החיפוש לא נמצאה.' )

תְפוּקָה:

הפלט הבא מופיע אם מחרוזת הקלט היא 'אני אוהב תכנות Python':

הפלט הבא מופיע אם מחרוזת הקלט היא 'אני אוהב תכנות PHP':

דוגמה 4: החלף את המחרוזת באמצעות הפונקציה Sub()

הפונקציה sub() משמשת לחיפוש מחרוזת מסוימת בהתבסס על התבנית והחלפתה במילה אחרת. התחביר של פונקציה זו ניתן באופן הבא:

תחביר:

re.sub ( pattern, replace_string, main_string )

הארגומנט הראשון של פונקציה זו מכיל את התבנית המשמשת לחיפוש במחרוזת המסוימת במחרוזת הראשית.

הארגומנט השני של פונקציה זו מכיל את ערך המחרוזת 'החלף'.

הארגומנט השלישי של פונקציה זו מכיל את המחרוזת הראשית.

פונקציה זו מחזירה את המחרוזת המוחלפת אם קיימת מילה תואמת כלשהי במחרוזת הראשית בהתבסס על הארגומנט הראשון.

צור קובץ Python עם הסקריפט הבא שמחפש שתי ספרות בסוף המחרוזת. אם המחרוזת מכילה שתי ספרות בסוף, הספרות מוחלפות במחרוזת '$50'.

#ייבוא ​​מודול מחדש
ייבוא ​​מחדש

#הגדר את המחרוזת הראשית
strValue = 'מחיר הספר הוא 70'

#הגדר את דפוס החיפוש
דפוס = '[0-9]{2}'

#הגדר את ערך ההחלפה
replaceValue = '$50'

#חפש והחלף את המחרוזת בהתבסס על התבנית
modified_strValue = re.sub ( דפוס, replaceValue, strValue )
#הדפס את ערכי המחרוזת המקוריים והשונו
הדפס ( 'מחרוזת מקורית:' + strValue )
הדפס ( 'מחרוזת שונתה:' + modified_strValue )

תְפוּקָה:

היו 70 בסוף המיתר הראשי. אז, ה-70 מוחלף ב-$50 במחרוזת המוחלפת.

דוגמה 5: החלף את המחרוזת באמצעות הפונקציה Subn()

הפונקציה subn() פועלת כמו הפונקציה sub() אלא שהיא מחזירה את הפלט כ-tuple כאשר האינדקס הראשון מכיל את הערך המוחלף והאינדקס השני מכיל את מספר ההתאמות הכולל.

צור קובץ Python עם הסקריפט הבא שמחפש את האלפבית A עד L במחרוזת 'LinuxHint.com' באמצעות הפונקציה subn():

#ייבוא ​​מודול מחדש
ייבוא ​​מחדש

#הגדר את המחרוזת הראשית
strValue = 'LinuxHint.com'

#הגדר את דפוס החיפוש
דפוס = '[אל ה]'

#הגדר את ערך ההחלפה
replaceValue = '*'

#חפש והחלף את המחרוזת בהתבסס על התבנית
modified_strValue = re.subn ( דפוס, replaceValue, strValue )
#הדפס את המחרוזת המקורית ואת הפלט של ה-subn()
הדפס ( 'מחרוזת מקורית: \n ' + strValue )
הדפס ( 'פלט של פונקציית subn(): ' )
הדפס ( modified_strValue )

תְפוּקָה:

לפי הפלט הבא, התווים 'L' ו-'H' מוחלפים בתו '*'.

דוגמה 6: פיצול המחרוזת באמצעות הפונקציה Split()

צור קובץ Python עם הסקריפט הבא שהשתמש בפונקציה split() כדי לחלק את המחרוזת הראשית למספר חלקים בהתבסס על תבנית הביטוי הרגולרי:

#ייבוא ​​מודול מחדש
ייבוא ​​מחדש

#הגדר ערך מחרוזת
strVal= 'רופה אקטר; נירה צ'ודהורי; מזהרול איסלאם'
#הגדר את התבנית שתשמש לפיצול הנתונים
דפוס = '[^A-Za-z ]'
#אחסן את ערכי הפיצול ברשימה
split_result = re.split ( דפוס, strVal )
הדפס ( 'פלט של הפונקציה split():' )
הדפס ( פיצול_תוצאה )

תְפוּקָה:

לפי הפלט, המחרוזת הראשית מחולקת לשלושה חלקים על בסיס דפוס '[^A-Za-z ]' המשמש בסקריפט.

סיכום

מטרת המטא-תווים הנפוצים ביותר, הטווחים והפונקציות המובנות של Python לחיפוש, להחליף ולפצל את המחרוזות מוצגות במדריך זה באמצעות סקריפטים פשוטים של Python.