מחשביםתכנות

ביטוי רגיל (PHP). PHP: דוגמאות ביטויים רגולריים

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

"רצון ו / או הרבה כסף" אינו יוצר אלגוריתם מסוגל כי, וכמובן "חינם" איש עושה, במיוחד כאשר הוא אינו חושב על מה שהוא עושה. בכל מצב בעית המידע יש לפחות נקודה עיוורת אחת, אבל בשבילו, בדרך כלל מייד, ואחרים כתמים נקיים גלויים, ולא בהכרח כי הם כולם פרחים הלבנים.

טכנולוגיית האינטרנט יש לפשט את הגישה למידע, אך השאלה היא - איך לשים על בעל רצוי - לא פשוט, ורכש "נפח" של עבודה חדש. ולמרות PHP ביטוי רגיל הפער אינו מותש בבירור, הם צעד משמעותי קדימה.

פונקציות פשוטות + אלגוריתם = דפוס

מציע ביטויים רגולריים, PHP האלגוריתם מפחית באופן משמעותי את התוכן, אבל פונקציות חיפוש כרגיל / החלפת אלגוריתמים לעיבוד למצוא לא איבדו מחשיבותם. רעיונות חדשים אינם מבשרים את מהפכת המידע. הכי כי ניתן לצפות - קוד קומפקטי ולהגדיל את מפתח את היכולת לגבש את שאילתת החיפוש בצורה נכונה.

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

יש:

  • איכות כלי מודרני - זה טוב;
  • לראות ולהשתמש הניסיון של עמיתים הוא העניין;
  • שילוב המציאות רעיון וירטואלי - ערובה להצלחה.

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

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

אופי חיפוש פשוט (מחרוזת)

סמל - זה לא תמיד בית אחד, והוא בדרך כלל סמל, כקלף, יש משמעות מדויקת בנוסף. קידוד מציין את התווים הגלויים לעין בקוד שונה. הסמל יכול להיות מספר אפשרויות: "$" = "דולר" = "דולר", ... - המשמעות המדויקת של שמשהו איפשהו, אבל לא בהכרח קרוב, בשל המטבע. עם זאת, את המשמעות המדויקת נעוצה ככל הנראה PHP משתנה, אשר תמיד מתחיל עם הדמות "$", אבל לא יכול להתחיל עם "דולר" ו "דולר".

הסמל של התוכנית עשויה להיות שם פונקציה (מחרוזת) בהקשר של: להכיר ולהגשים - זה מן תכנות מונחה עצמים דינמי, כאשר המבנה, פונקציות, ביטויים רגולריים PHP משמשים ישירות לקבלת החלטות. מצאתי את האות "תורות", כלומר, על ידי עצמו קובע מה לעשות במקום שבו הוא נמצא, ואת הדרך בה הוא, "שיראה" הכרחי.

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

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

סמל Lone - זה לא ביטוי, ולא כמה משפטים, הוא יכול להיות בכל מקום ולהיות קטן ככל הרצוי. כיצד לקבוע מה נמצא הוא רצוי?

דוגמה: חיפוש אחר מחירים

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

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

CContents $ = preg_match_all ( "/ [0-9] + ([\ $] | דולר | \ £ y \ | UE) {1} / i.";

"תראה דואר אלקטרוני - 2usd;
";
"מצא דואר אלקטרוני - 2u.e;
.";
"עבודה דואר אלקטרוני - ue2;
";
"בדוק דואר אלקטרוני - 13 $", $ aResult);
. "; ". התפוצץ ( '', $ aResult [0]). '
'.

ענה: "2; 2usd, 2u.e.", אבל לא מצאתי שום דבר בשורה: "דואר אלקטרוני לבדוק - $ 13."

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

CContents $ = preg_match_all ( "/ ([0-9] + ([\ $] | דולר | \ £ y \ |. UE) {1}) | (([$] | דולר | \ £ y \. | UE) {1} [0-9] +) / i ";
"תראה דואר אלקטרוני - 2usd;
";
"מצא דואר אלקטרוני - 2u.e;
.";
"עבודה דואר אלקטרוני - ue2;
";
"בדוק דואר אלקטרוני - 13 $", $ aResult);
. "; ". התפוצץ ( '', $ aResult [0]). '
'.

התוצאה: "4; 2usd, 2u.e., ue2, $ 13."

אודות היגיון לא מכוון

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

אפשרי לפני תחילת החיפוש נדרש לפנות אל המערך, ואת המקום שבו אנחנו מחפשים, בחלוקה לרכיבים פי קריטריונים מוקדמים. רק לפני כמה להתפוצץ () ו להתפוצץ () לעתים קרובות מפשט ומאיץ את ההחלטה.

לדוגמא, כתוצאה של עבודה ראשונית נוצר מערך של מחרוזות (נתונים) במחוז על כמה תפוחי אדמה שנאספו בכל כפר: לא ידוע ImyaDerevnya ונפח שנאספו, ואם המדינה מפעילה מספר חברות מערך של מחרוזות הוא ImyaDerevnya.ImyaPredpriyatie וערך דרך "; " וכן הלאה כל המפעלים. לחשב את הסכום הכולל שנאסף במקרה זה לא יהיה אפשרי, אבל אם אתה עושה impode ( ";", $ aResult), יהיה קו אחד ארוך, שבו הזוג - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - אוסף של גודל - יועבר באמצעות ";". האם הפוך על וכתוצאה, להתפוצץ ( ";", $ aResult) - מערך של הכל, מי שנאסף וכיצד נאסף, ולאחר מכן על ידי הסרת שורות מכל תווים שאינם מספריים, יש לנו מספרים בלבד, סכום המהווה את הנפח הכולל שנאסף.

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

הפשטה מהצד הטכני, את הקידוד

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

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

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

המבנה והתוכן של תבנית

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

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

דוגמא פשוטה ביטוי

בשנת התגלמות פשוטה, התבנית התואמת את המחרוזת:

CContents $ = preg_match ( "/ asdf / i", "asdf", $ aResult). "; ". התפוצץ ( '', $ aResult).

התוצאה תהיה "1; asdf", מפני שהפונקציה משלימה את פעולתו על הראשון נפגש תבנית התאמה. התוצאה תהיה זהה, אם אנחנו מסתכלים על השורה "aaaasdf" בתור "zzzasdfvvv". אם תציין את התו הראשון ו / או אחרון, התוצאה תהיה ברורה:

CContents $ = preg_match ( "/ ^ asdf / i", "asdf", $ aResult). "; ". התפוצץ ( '', $ aResult). '
';
CContents $. = Preg_match ( "/ asdf $ /", "asdf", $ aResult). "; ". התפוצץ ( '', $ aResult). '
'.

התוצאה תהיה: 1; asdf1; asdf.

הסמלים "*" ו "$" מציינים מאיפה להתחיל ואת הדפוס והכלה. תוצאת פונקצית preg_match - את מספר ההתאמות, זה יכול להיות 0, 1, או שקר, אם מתגלה שגיאה. האפשרות השלישית - מערך - להציב אלמנט נמצא רק. במקרה של שימוש בפונקצית preg_match_all () חיפוש ממשיך את קו הסיום.

CContents $ = preg_match ( "/ asdf / i", "asdf123asdf456asdf789", $ aResult). "; ". התפוצץ ( '', $ aResult). '
';
CContents $. = Preg_match_all ( "/ asdf / i", "asdf123asdf456asdf789", $ aResult). "; ". התפוצץ ( '', $ aResult [0]). '
'.

תוצאה:

1; asdf
3; asdf, asdf, asdf.

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

פונקציות PHP לעבודה עם ביטויים רגולריים

ביטויים רגולריים עבור PHP לייצג מחרוזת תווים רשמה בצורה מסוימת. בדרך כלל, על ידי אנלוגיה עם שפות תכנות אחרות, הם כתובים סימנים "/" ... "/" והניח במרכאות, אתה יכול להשתמש יחיד או כפול בהתאם לאלגוריתם.

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

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

היקף ביטויים רגולריים

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

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

ביטויים רגולריים והמידע האמיתי

תחום חשוב של יישום של ביטויים רגולריים בספריות PHP יצר כניסתו PHPOffice. עבודה עם מסמכים, גיליונות אלקטרוניים, ותמיד היה חשוב תקן OOXML אפשרי לא רק לפרק את המסמכים בפועל, אלא גם לעצב התכנית שלהם.

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

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

מידע מצב טבעי

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

בפרט, את המשימה שקבעה את הביטוי "לפתור uranenie המרובע" לאחר העריכה ייראה כך: "כדי לפתור משוואה ריבועית" אם בהתחלה את השגיאה הראשונה תוקנה, ולאחר מכן השני, אז את המידע טבעי בסגנון OOXML עשוי להיראות כך: "[נפתרה] [] [ריבוע] [e] [] [תרועות] [B] [nenie]", אולם אין בכך כדי מבטיח שזו המשימה תופיע OOXML התגיות (בסוגריים לחקות תגי סוגריים).

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 iw.birmiss.com. Theme powered by WordPress.