אנגליתצרפתיתספרדי

סמל OnWorks

pcre2test - מקוון בענן

הפעל pcre2test בספק אירוח חינמי של OnWorks על Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה pcre2test שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


pcre2test - תוכנית לבדיקת ביטויים רגולריים תואמי Perl.

תַקצִיר



pcre2test [אפשרויות] [קֶלֶט פילה [תְפוּקָה קוֹבֶץ]]

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

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

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

של PCRE2 8 סיביות, 16-BIT ו 32-BIT ספריות



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

בשאר המסמך הזה, שמות הפונקציות והמבנים של הספרייה מופיעים
צורה גנרית, למשל, pcre_compile(). לשמות בפועל המשמשים בספריות יש א
הסיומת _8, _16 או _32, לפי העניין.

קלט הַצפָּנָה



קלט ל pcre2test מעובד שורה אחר שורה, או על ידי קריאה לספריית C fgets ()
פונקציה, או דרך ה קו ליברד ספרייה (ראה להלן). הקלט מעובד באמצעות שימוש
המחרוזת של C מתפקדת, אז אסור להכיל אפסים בינאריים, למרות שבדמוי יוניקס
סביבות, fgets () מתייחס לכל בתים מלבד newline כתווי נתונים. בחלק
סביבות Windows תו 26 (hex 1A) גורם לסיום מיידי של הקובץ, ולא מעבר לכך
הנתונים נקראים.

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

פקודה קו אפשרויות



-8 אם ספריית 8 סיביות נבנתה, אפשרות זו גורמת לשימוש בה (זהו
ברירת המחדל). אם ספריית 8 סיביות לא נבנתה, אפשרות זו גורמת ל-
שגיאה.

-16 אם ספריית 16 סיביות נבנתה, אפשרות זו גורמת לשימוש בה. אם רק
ספריית 16 סיביות נבנתה, זוהי ברירת המחדל. אם ספריית 16 סיביות
לא נבנה, אפשרות זו גורמת לשגיאה.

-32 אם ספריית 32 סיביות נבנתה, אפשרות זו גורמת לשימוש בה. אם רק
ספריית 32 סיביות נבנתה, זוהי ברירת המחדל. אם ספריית 32 סיביות
לא נבנה, אפשרות זו גורמת לשגיאה.

-b התנהג כאילו לכל דפוס יש את /fullbincode מַתקֵן; הפנימי המלא
צורה בינארית של התבנית מופקת לאחר ההידור.

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

-C אוֹפְּצִיָה פלט מידע על אפשרות ספציפית בזמן בנייה, ואז צא. זֶה
הפונקציונליות מיועדת לשימוש בסקריפטים כגון מבחן ריצה. הבאים
אפשרויות פלט את הערך והגדר את קוד היציאה כמצוין:

ebcdic-nl הקוד עבור LF (= NL) בסביבת EBCDIC:
0x15 או 0x25
0 אם משתמשים בסביבת ASCII
קוד יציאה הוא תמיד 0
קישור לגודל הקישור הפנימי המוגדר (2, 3 או 4)
קוד היציאה מוגדר לגודל הקישור
newline הגדרת ברירת המחדל של newline:
CR, LF, CRLF, ANYCRLF או ANY
קוד יציאה הוא תמיד 0
bsr הגדרת ברירת המחדל למה ש-\R מתאים:
ANYCRLF או כל
קוד יציאה הוא תמיד 0

האפשרויות הבאות פלט 1 עבור true או 0 עבור false, והגדר את קוד היציאה ל
אותו ערך:

Backslash-C \C נתמך (לא נעול)
ebcdic הידור עבור סביבת EBCDIC
תמיכה זמינה בדיוק בזמן של jit
pcre2-16 ספריית 16 סיביות נבנתה
pcre2-32 ספריית 32 סיביות נבנתה
pcre2-8 ספריית 8 סיביות נבנתה
תמיכה ב-unicode Unicode זמינה

אם ניתנת אפשרות לא ידועה, תוצא הודעת שגיאה; קוד היציאה הוא 0.

-d התנהג כאילו לכל דפוס יש את באגים מַתקֵן; הצורה הפנימית ו
מידע על דפוס הידור מופק לאחר ההידור; -d is
שווה ערך ל -b -i.

-dfa התנהג כאילו לכל שורת נושא יש את DFA מַתקֵן; ההתאמה מתבצעת באמצעות
pcre2_dfa_match () פונקציה במקום ברירת המחדל pcre2_match().

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

-i התנהג כאילו לכל דפוס יש את /info מַתקֵן; מידע על המלוקט
דפוס ניתן לאחר הידור.

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

-תבנית רשימת משנה
התנהג כאילו כל קו דפוס מכיל את המשתנים הנתונים.

-q אל תוציא את מספר הגרסה של pcre2test בתחילת הביצוע.

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

-נושא רשימת משנה
התנהג כאילו כל שורת נושא מכילה את המשתנים הנתונים.

-t הפעל כל קומפיל והתאמה פעמים רבות עם טיימר, והפלט את המתקבל
פעמים לכל קומפילציה או התאמה. כאשר נעשה שימוש ב-JIT, ניתנים זמנים נפרדים עבור
קומפילציה ראשונית והקומפילציה JIT. אתה יכול לשלוט במספר האיטרציות
המשמשים לתזמון על ידי מעקב -t עם מספר (כפריט נפרד על
שורת הפקודה). לדוגמה, "-t 1000" חוזר 1000 פעמים. ברירת המחדל היא ל
לחזור 500,000 פעמים.

-tm זה כמו -t אלא שהוא מזמן רק את שלב ההתאמה, לא את ההידור
שלב.

-T -TM אלה מתנהגים כמו -t ו -tm, אבל בנוסף, בתום ריצה, סך הכל
הזמנים עבור כל ההידורים וההתאמות מופקים.

-הפך פלט את מספר הגרסה של PCRE2 ולאחר מכן צא.

תיאור



If pcre2test מקבלים שני ארגומנטים של שם קובץ, הוא קורא מהראשון וכותב ל-
שְׁנִיָה. אם השם הפרטי הוא "-", הקלט נלקח מהקלט הסטנדרטי. אם pcre2test is
בהינתן ארגומנט אחד בלבד, הוא קורא מהקובץ וכותב ל-stdout. אחרת, זה קורא
מ-stdin וכותב ל-stdout.

מתי pcre2test בנוי, אפשרות תצורה יכולה לציין שיש לקשר אותה
מה היא קו ליברד or ליבדיט סִפְרִיָה. כאשר זה נעשה, אם הקלט הוא ממסוף, זה
נקרא באמצעות ה קריאת שורה() פוּנקצִיָה. זה מספק מתקנים לעריכת קו והיסטוריה.
הפלט מה עזרה אפשרות קובעת אם או לא קריאת שורה() יהיה בשימוש.

התוכנית מטפלת בכל מספר של מבחנים, שכל אחד מהם מורכב מקבוצה של שורות קלט.
כל סט מתחיל בדפוס ביטוי רגולרי, ואחריו כל מספר של שורות נושא
להיות מותאם לתבנית זו. בין קבוצות של נתוני בדיקה, שורות פקודה שמתחילות
עם # עשוי להופיע. פורמט קובץ זה, עם הגבלות מסוימות, יכול להיות מעובד גם על ידי ה
perltest.sh סקריפט שמופץ עם PCRE2 כאמצעי לבדוק שה-
ההתנהגות של PCRE2 ושל Perl זהה.

כאשר הקלט הוא טרמינל, pcre2test בקשות עבור כל שורת קלט, באמצעות "re>" כדי
הנחיה לדפוסי ביטוי רגולרי, ו-"data>" כדי לבקש לשורות נושא. פקודה
ניתן להזין שורות המתחילות ב-# רק בתגובה להנחיה "re>".

כל שורת נושא מותאמת בנפרד ובאופן עצמאי. אם אתה רוצה לעשות רב קו
התאמות, עליך להשתמש ברצף ה-escape \n (או \r או \r\n וכו', בהתאם ל-
הגדרת שורה חדשה) בשורה אחת של קלט כדי לקודד את רצפי השורה החדשה. אין
הגבלה על אורך שורות הנושא; מאגר הקלט מורחב אוטומטית אם כן
קטן מדי. ישנן תכונות שכפול שמאפשרות ליצור ארוך
דפוס או שורות נושא החוזרות על עצמן ללא צורך לספק אותם במפורש.

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

פקודה קווים



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

#לאסור_utf

לתבניות הבאות יש באופן אוטומטי את האפשרויות PCRE2_NEVER_UTF ו-PCRE2_NEVER_UCP
set, אשר נועל את השימוש באפשרויות PCRE2_UTF ו-PCRE2_UCP ואת השימוש ב-(*UTF)
ו-(*UCP) בתחילת הדפוסים. פקודה זו גם מאלצת שגיאה אם ​​עוקב
דפוס מכיל מופעים כלשהם של \P, \p או \X, שעדיין נתמכים כאשר
PCRE2_UTF אינו מוגדר, אך דורשים תמיכה במאפייני Unicode להיכלל ב-
סִפְרִיָה.

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

#לִטעוֹן

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

#newline_default [ ]

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

הפקודה #newline_default מציינת רשימה של סוגי קו חדש מקובלים בתור
בְּרִירַת מֶחדָל. הסוגים חייבים להיות אחד מ-CR, LF, CRLF, ANYCRLF או ANY (באותיות גדולות או קטנות),
לדוגמה:

#newline_default LF Any anyCRLF

אם ברירת המחדל של השורה החדשה נמצאת ברשימה, לפקודה זו אין השפעה. אחרת, למעט מתי
בדיקת ה-API של POSIX, א שורה חדשה שינוי המציין את הקונבנציה החדשה הראשונה ב
הרשימה (LF בדוגמה לעיל) מתווספת לכל דפוס שאין לו כבר a
שורה חדשה מַתקֵן. אם רשימת השורות החדשות ריקה, התכונה כבויה. הפקודה הזו היא
קיים במספר מקבצי קלט הבדיקה הסטנדרטיים.

כאשר ה-API של POSIX נבדק, אין דרך לעקוף את קו ברירת המחדל החדש
מוסכמה, אם כי ניתן להגדיר את הקו החדש מתוך התבנית. א
ניתנת אזהרה אם פוסיקס משנה משמש כאשר #newline_default יגדיר ברירת מחדל
עבור ה-API שאינו POSIX.

#תבנית

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

#perltest

המראה של קו זה גורם לבדיקת כל הגדרות השינוי הבאות
תאימות עם perltest.sh סקריפט, המשמש לאשר ש-Perl נותן את
אותן תוצאות כמו PCRE2. כמו כן, מלבד שורות הערה, אף אחת משורות הפקודה האחרות לא
מותר, כי הם ורבים מהשינויים ספציפיים ל pcre2test, וצריך
לא ישמש בקובצי בדיקה שמעובדים גם על ידי perltest.sh. ה #perltest הפקודה
עוזר לזהות בדיקות שהוכנסו בטעות לקובץ הלא נכון.

#פופ [ ]

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

#לשמור

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

#נושא

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

שנה תחביר



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

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

/abc/ig,newline=cr,jit=3

זוהי שורת דפוס שרשימת השינויים שלה מתחילה בשני משנים בני אות אחת (/i ו
/g). השינויים המקוצרים באותיות קטנות זהים לאלה המשמשים ב- Perl.

תַבְנִית תחביר



קו דפוס חייב להתחיל באחד מהתווים הבאים (סמלים נפוצים, לא כולל
מטא-תווים של דפוס):

/ ! " ' ` - = _ : ; , % & @ ~

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

/א ב ג ד ה ו/

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

/א ב ג/\

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

/א ב ג\/

מתפרש כשורה הראשונה של דפוס שמתחיל ב-"abc/", מה שגורם ל-pcre2test
לקרוא את השורה הבאה כהמשך לביטוי הרגולרי.

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

נושא קו תחביר



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

\a אזעקה (BEL, \x07)
\b backspace (\x08)
\e escape (\x27)
\f טופס פיד (\x0c)
\n שורה חדשה (\x0a)
\r החזרת כרכרה (\x0d)
כרטיסיית \t (\x09)
\v כרטיסייה אנכית (\x0b)
\nnn תו אוקטלי (עד 3 ספרות אוקטליות); תמיד
בית אלא אם כן > 255 במצב UTF-8 או 16 סיביות או 32 סיביות
\o{dd...} תו אוקטלי (כל מספר של ספרות אוקטליות}
\xhh בתים הקסדצימליים (עד 2 ספרות הקסדצימיות)
\x{hh...} תו הקסדצימלי (כל מספר של ספרות hex)

השימוש ב-\x{hh...} אינו תלוי בשימוש ב- utf משנה על התבנית. זה
מוכר תמיד. ייתכן שיש מספר כל שהוא של ספרות הקסדצימליות בתוך הסוגרים;
ערכים לא חוקיים מעוררים הודעות שגיאה.

שים לב ש-\xhh מציין בייט אחד במקום תו אחד במצב UTF-8; זה עושה את זה
אפשר לבנות רצפי UTF-8 לא חוקיים למטרות בדיקה. מצד שני,
\x{hh} מתפרש כתו UTF-8 במצב UTF-8, יוצר יותר מבייט אחד אם
הערך גדול מ-127. בעת בדיקת ספריית 8 סיביות שאינה במצב UTF-8, \x{hh}
יוצר בית אחד עבור ערכים פחות מ-256, וגורם לשגיאה עבור ערכים גדולים יותר.

במצב UTF-16, כל ערכי \x{hhhh} בני 4 ספרות מתקבלים. זה מאפשר
לבנות רצפי UTF-16 לא חוקיים למטרות בדיקה.

במצב UTF-32, כל ערכי \x{...} בני 4 עד 8 ספרות מתקבלים. זה מאפשר
לבנות רצפי UTF-32 לא חוקיים למטרות בדיקה.

יש רצף קו נטוי מיוחד המציין שכפול של אחד או יותר
תווים:

\[ ]{ }

זה מאפשר לבדוק מיתרים ארוכים מבלי לספק אותם כחלק מה-
קוֹבֶץ. לדוגמה:

\[abc]{4}

מומר ל"abcabcabcabc". תכונה זו אינה תומכת בקינון. לכלול א
סוגר מרובע סוגר בתווים, קוד אותו כ-\x5D.

קו נטוי אחורי ואחריו סימן שווה מסמן את סוף מחרוזת הנושא ואת ההתחלה
של רשימת משנה. לדוגמה:

abc\=notbol,nottempty

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

\= זוהי הערה.
abc\= זוהי רשימת משנה לא חוקית.

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

תַבְנִית משתנים



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

הגדרת קומפילציה אפשרויות

המשתנים הבאים מגדירים אפשרויות עבור pcre2_compile(). לנפוצים שבהם יש יחיד-
קיצורי אותיות. לִרְאוֹת pcre2api לתיאור השפעותיהם.

allow_empty_class set PCRE2_ALLOW_EMPTY_CLASS
alt_bsux סט PCRE2_ALT_BSUX
ALT_CIRCUMFLEX הגדר PCRE2_ALT_CIRCUMFLEX
alt_verbnames מוגדר PCRE2_ALT_VERBNAMES
סט מעוגן PCRE2_ANCHORED
auto_calout מוגדר PCRE2_AUTO_CALLOUT
/i סט חסר כיסוי PCRE2_CASELESS
dollar_endonly הגדר PCRE2_DOLLAR_ENDONLY
/s dotall ערכת PCRE2_DOTALL
ערכת dupnames PCRE2_DUPNAMES
קבוצת /x מורחב PCRE2_EXTENDED
ערכת שורה ראשונה PCRE2_FIRSTLINE
match_unset_backref set PCRE2_MATCH_UNSET_BACKREF
‎/m multiline set PCRE2_MULTILINE
never_backslash_c הגדר את PCRE2_NEVER_BACKSLASH_C
never_ucp הגדר PCRE2_NEVER_UCP
never_utf הגדר PCRE2_NEVER_UTF
no_auto_capture set PCRE2_NO_AUTO_CAPTURE
no_auto_possess set PCRE2_NO_AUTO_POSSESS
no_dotstar_anchor set PCRE2_NO_DOTSTAR_ANCHOR
no_start_optimize הגדר PCRE2_NO_START_OPTIMIZE
no_utf_check set PCRE2_NO_UTF_CHECK
ערכת ucp PCRE2_UCP
הגדר ungreedy PCRE2_UNGREEDY
use_offset_limit set PCRE2_USE_OFFSET_LIMIT
ערכת utf PCRE2_UTF

בנוסף להפעלת האפשרות PCRE2_UTF, ה utf שינוי גורם לכל אי הדפסה
תווים במחרוזות פלט שיודפסו באמצעות הסימון \x{hh...}. אחרת, אלה
פחות מ-0x100 יוצאים ב-hex ללא הסוגריים המתולתלים.

הגדרת קומפילציה בקרות

המשתנים הבאים משפיעים על תהליך ההידור או מבקשים מידע על
תַבְנִית:

bsr=[anycrlf|unicode] ציין טיפול \R
/B bincode הצג קוד בינארי ללא אורכים
callout_info הצג מידע על הסבר
איתור באגים זהה למידע, fullbincode
fullbincode הצג קוד בינארי עם אורכים
/I info מציג מידע על דפוס הידור
דפוס הקסדצימלי מקודד בהקסדצימלי
jit[= ] השתמש ב-JIT
jitfast השתמש בנתיב המהיר של JIT
jitverify לאמת את השימוש ב-JIT
locale= השתמש במיקום זה
max_pattern_length= הגדר את אורך הדפוס המרבי
הצגת זיכרון בשימוש
newline= הגדר סוג שורה חדשה
null_context קומפילציה עם הקשר NULL
parens_nest_limit= הגדר עומק מרבי בסוגריים
posix השתמש ב- POSIX API
דחוף לדחוף את התבנית הקומפילטית על הערימה
מחסנית = בדוק את תכונת ה-Stackguard
tables=[0|1|2] בחר טבלאות פנימיות

ההשפעות של משנים אלה מתוארות בסעיפים הבאים.

שורה חדשה ו \R טיפול

השמיים ב.ס.ר. שינוי מציין לאיזה \R בתבנית צריך להתאים. אם הוא מוגדר ל-"anycrlf",
\R תואם ל-CR, LF או CRLF בלבד. אם הוא מוגדר ל-"unicode", \R מתאים לכל קו חדש של Unicode
סדר פעולות. ברירת המחדל מצוינת כאשר PCRE2 נבנה, כאשר ברירת המחדל היא
Unicode.

השמיים שורה חדשה השינוי מציין אילו תווים יש לפרש כשורות חדשות, שניהם ב
התבנית ובשורות הנושא. הסוג חייב להיות אחד של CR, LF, CRLF, ANYCRLF או ANY
(באותיות גדולות או קטנות).

מֵידָע על a דפוס

השמיים באגים modifier הוא קיצור של מידע, קוד מלא, מבקש כל זמין
מידע.

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

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

השמיים מידע השינוי מבקש מידע על הדפוס המהודר (בין אם הוא מעוגן,
יש תו ראשון קבוע וכן הלאה). המידע מתקבל מ-
pcre2_pattern_info() פוּנקצִיָה. הנה כמה דוגמאות טיפוסיות:

re> /(?i)(^a|^b)/m,info
לכידת ספירת תת-דפוס = 1
אפשרויות קומפילציה: רב קו
אפשרויות כוללות: רב קו ללא כיסוי
יחידת קוד ראשונה בהתחלה או אחרי שורה חדשה
אורך הנושא הגבול התחתון = 1

re> /(?i)abc/info
לכידת ספירת תת-דפוס = 0
אפשרויות קומפילציה:
אפשרויות כלליות: ללא כיסוי
יחידת הקוד הראשונה = 'a' (ללא מקרה)
יחידת הקוד האחרונה = 'c' (ללא מקרה)
אורך הנושא הגבול התחתון = 3

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

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

חולף a NULL הקשר

בדרך כלל, pcre2test מעביר בלוק הקשר ל pcre2_compile(). אם null_context
השינוי מוגדר, עם זאת, NULL מועבר. זה בשביל לבדוק את זה pcre2_compile() מתנהג
בצורה נכונה במקרה זה (הוא משתמש בערכי ברירת מחדל).

מפרט a דפוס in hex

השמיים hex modifier מציין כי יש לפרש את התווים של התבנית
זוגות של ספרות הקסדצימליות. מותר רווח לבן בין זוגות. לדוגמה:

/ab 32 59/hex

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

יוצר ארוך חוזר על עצמו דפוסי

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

\[ ]{ }

מורחבים לפני שהדפוס מועבר אל pcre2_compile(). לדוגמה, \[AB]{6000} הוא
הורחב ל-"ABAB..." 6000 פעמים. לא ניתן לקנן את המבנה הזה. "\[" ראשוני
הרצף מזוהה רק אם נמצא "]{" ואחריו ספרות עשרוניות ו-"}" בהמשך
הדפוס. אם לא, הדמויות נשארות בתבנית ללא שינוי.

אם חלק מדפוס מורחב נראה כמו הרחבה, אבל הוא באמת חלק מהמציאות
דפוס, ניתן למנוע התרחבות לא רצויה על ידי מתן שני ערכים בכמת. ל
לדוגמה, \[AB]{6000,6000} אינו מזוהה כפריט הרחבה.

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

JIT קומפילציה

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

הידור של JIT מתבקש על ידי /jit משנה דפוס, אשר עשוי להיות אופציונלי
ואחריו סימן שווה ומספר בטווח 0 עד 7. שלושת הביטים המרכיבים
המספר מציין אילו משלושת מצבי הפעולה של JIT יש להדר:

1 קומפיל קוד JIT להתאמה לא חלקית
2 קומפילו קוד JIT להתאמה חלקית רכה
4 קומפילו קוד JIT להתאמה חלקית קשה

הערכים האפשריים עבור /jit השינויים הם אפוא:

0 השבת את JIT
התאמה רגילה אחת בלבד
2 התאמה חלקית רכה בלבד
3 התאמה חלקית רגילה ורכה
4 התאמה חלקית קשה בלבד
6 התאמה חלקית רכה וקשה בלבד
7 כל שלושת המצבים

אם לא ניתן מספר, ההנחה היא 7. הביטוי "התאמה חלקית" פירושו קריאה אל
pcre2_match() עם האפשרות PCRE2_PARTIAL_SOFT או PCRE2_PARTIAL_HARD מוגדרת.
שימו לב ששיחה כזו עשויה להחזיר התאמה מלאה; האפשרויות מאפשרות את האפשרות של א
התאמה חלקית, אך לא דורשים זאת. שימו לב גם שאם אתם מבקשים קומפילציה של JIT בלבד
עבור התאמה חלקית (לדוגמה, /jit=2) אך אל תגדיר את חלקית משנה על א
שורת הנושא, התאמה זו לא תשתמש בקוד JIT מכיוון שאף אחד לא הידור לא חלקי
תוֹאֵם.

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

אם ג'יטפאסט השינוי צוין, ההתאמה מתבצעת באמצעות JIT "נתיב מהיר"
מִמְשָׁק, pcre2_jit_match(), שמדלגת על חלק מבדיקות השפיות שנעשות על ידי
pcre2_match(), וכמובן לא עובד כאשר JIT אינו נתמך. אם ג'יטפאסט is
מצוין בלי ג'יט, ההנחה היא jit=7.

אם jitverify השינוי מצוין, מידע על הדפוס המהודר מופיע
האם הידור של JIT היה מוצלח או לא. אם jitverify מצוין ללא ג'יט,
ההנחה היא jit=7. אם הידור JIT מצליח מתי jitverify מוגדר, הטקסט "(JIT)"
מתווסף לשורת הפלט הראשונה לאחר התאמה או אי התאמה כאשר קוד הידור של JIT היה
בשימוש בפועל במשחק.

הגדרת a אזור

השמיים /locale השינוי חייב לציין את השם של מקום, לדוגמה:

/pattern/locale=fr_FR

המקום הנתון מוגדר, pcre2_maketables() נקרא לבנות קבוצה של טבלאות תווים
עבור המקום, ואז זה מועבר אל pcre2_compile() בעת הידור הרגיל
ביטוי. אותן טבלאות משמשות בעת התאמה לשורות הנושא הבאות. ה
/locale השינוי חל רק על התבנית שעליה הוא מופיע, אך ניתן לתת ב-a
#תבנית פקודה אם יש צורך בברירת מחדל. הגדרת מיקום וטבלאות תווים חלופיות
הן הדדיות.

מראה דפוס זיכרון

השמיים /זיכרון modifier גורם לגודל ב-bytes של הזיכרון המשמש להחזיק את הקומפילד
דפוס שיש לפלט. זה לא כולל את הגודל של pcre2_code לַחסוֹם; זה רק
הנתונים שנאספו בפועל. אם התבנית מועברת לאחר מכן למהדר JIT, ה-
גודלו של הקוד המהודר של JIT מופק גם הוא. הנה דוגמה:

re> /a(b)c/jit,memory
הקצאת זיכרון (מרחב קוד): 21
הקצאת זיכרון (קוד JIT): 1910

מגביל קינון סוגריים

השמיים parens_nest_limit שינוי מגדיר מגבלה על העומק של סוגריים מקוננים ב-a
תבנית. פריצת הגבול גורמת לשגיאת קומפילציה. ברירת המחדל של הספרייה היא
מוגדר כאשר PCRE2 בנוי, אבל pcre2test מגדיר את ברירת המחדל שלו של 220, אשר נדרש עבור
הפעלת חבילת הבדיקות הסטנדרטית.

מגביל מה היא דפוס אורך

השמיים max_pattern_length modifier קובע מגבלה, ביחידות קוד, לאורך התבנית
pcre2_compile() יקבל. פריצת הגבול גורמת לשגיאת קומפילציה. ברירת המחדל
הוא המספר הגדול ביותר שמשתנה PCRE2_SIZE יכול להחזיק (למעשה בלתי מוגבל).

שימוש מה היא POSIX עֲטִיפָה API

השמיים /posix גורם לשינוי pcre2test לקרוא ל-PCRE2 דרך ה-API של POSIX wrapper במקום
ה-API המקורי שלו. זה תומך רק בספריית 8 סיביות. שימו לב שזה לא מרמז על POSIX
סמנטיקה מתאימה; לפרטים נוספים ראה את pcre2posix תיעוד. כאשר ה-API של POSIX
נמצא בשימוש, מגדירי התבניות הבאים את האפשרויות עבור regcomp() פוּנקצִיָה:

REG_ICASE ללא מקרה
ריבוי קווים REG_NEWLINE
no_auto_capture REG_NOSUB
dotall REG_DOTALL )
ungreedy REG_UNGREEDY ) אפשרויות אלו אינן חלק מהן
ucp REG_UCP ) תקן POSIX
utf REG_UTF8 )

השמיים regerror_buffsize השינוי מציין גודל עבור מאגר השגיאה שאליו מועבר
regerror() במקרה של שגיאת קומפילציה. לדוגמה:

/abc/posix,regerror_buffsize=20

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

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

בדיקות מה היא לערום שומר תכונה

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

שימוש חלופה אופי שולחנות

הערך שצוין עבור /טבלאות השינוי חייב להיות אחת מהספרות 0, 1 או 2. זה
גורם לקבוצה מסוימת של טבלאות תווים מובנות לעבור אליה pcre2_compile(). זֶה
משמש במבחני PCRE2 לבדיקת התנהגות עם טבלאות תווים שונות. הספרה
מפרט את הטבלאות באופן הבא:

0 אל תעבור שום טבלאות תווים מיוחדות
1 טבלאות ASCII ברירת המחדל, כפי שהן מופצות ב
pcre2_chartables.c.dist
2 קבוצת טבלאות המגדירה תווי ISO 8859

בטבלה 2, כמה תווים שהקודים שלהם גדולים מ-128 מזוהים כאותיות,
ספרות, רווחים וכו'. הגדרת טבלאות תווים חלופיות ומקום הם הדדיים
בִּלעָדִי.

הגדרת מסוים להתאים בקרות

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

לאחר טקסט הצג טקסט לאחר התאמה
כלאחרטקסט הצג טקסט לאחר לכידות
allcaptures מציג את כל הלכודות
allusedtext הצג את כל הטקסט שנבדק
/g התאמה גלובלית
סמן הראה ערכי סימן
להחליף= ציין מחרוזת החלפה
startchar הצג את תו ההתחלה כאשר רלוונטי
substitute_extended השתמש ב-PCRE2_SUBSTITUTE_EXTENDED
substitute_overflow_length השתמש ב-PCRE2_SUBSTITUTE_OVERFLOW_LENGTH
substitute_unknown_unset השתמש ב-PCRE2_SUBSTITUTE_UNKNOWN_UNSET
substitute_unset_empty השתמש ב-PCRE2_SUBSTITUTE_UNSET_EMPTY

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

הצלה a הידור דפוס

כאשר דפוס עם לדחוף ה-modifier הידור בהצלחה, הוא נדחף לערימה
של תבניות מלוקטות, ו pcre2test מצפה שהשורה הבאה תכיל דפוס חדש (או א
פקודה) במקום שורת נושא. מתקן זה משמש בעת שמירת דפוסי קומפילציה ל
קובץ, כמתואר בסעיף שכותרתו "שמירה ושחזור תבניות הידור"
לְהַלָן. ה לדחוף modifier אינו תואם לשינויי קומפילציה כגון גלוֹבָּלִי זֶה
לפעול בזמן משחק. מתעלמים מכל מה שצוין, עם הודעת אזהרה, למעט
להחליף, מה שגורם לשגיאה. ציין זאת, jitverify, המותר, אינו נושא
דרך לכל התאמה שלאחר מכן המשתמשת בדפוס זה.

נושא משתנים



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

הגדרת להתאים אפשרויות

המשתנים הבאים מגדירים אפשרויות עבור pcre2_match() or pcre2_dfa_match (). לראות pcreapi
לתיאור השפעותיהם.

סט מעוגן PCRE2_ANCHORED
dfa_restart הגדר PCRE2_DFA_RESTART
dfa_shorttest סט PCRE2_DFA_SHORTEST
no_utf_check set PCRE2_NO_UTF_CHECK
notbol הגדר PCRE2_NOTBOL
ערכת notempty PCRE2_NOTEMPTY
notempty_atstart הגדר PCRE2_NOTEMPTY_ATSTART
ערכת noteol PCRE2_NOTEOL
partial_hard (או ph) מוגדר PCRE2_PARTIAL_HARD
partal_soft (או ps) הגדר PCRE2_PARTIAL_SOFT

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

אם /posix השינוי היה קיים בתבנית, מה שגרם ל-API של POSIX wrapper להיות
בשימוש, המשתנים היחידים להגדרת האפשרויות שיש להם השפעה כלשהי הם notbol, לא ריק, ו
noteol, מה שגורם ל-REG_NOTBOL, REG_NOTEMPTY ו-REG_NOTEOL, בהתאמה, לעבור אל
regexec(). כל שינוי אחר גורם לשגיאה.

הגדרת להתאים בקרות

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

לאחר טקסט הצג טקסט לאחר התאמה
כלאחרטקסט הצג טקסט לאחר לכידות
allcaptures מציג את כל הלכודות
allusedtext הצג את כל הטקסט שנבדק (לא JIT בלבד)
התאמה גלובלית אלטרנטיבית
callout_capture הצג לכידות בזמן הסבר
callout_data= הגדר ערך שיועבר באמצעות הסברים
callout_fail= [: ] כשל בהסבר השליטה
callout_none לא מספקים פונקציית הסבר
העתק= העתק מחרוזת משנה שנלכדה
שימוש ב-dfa pcre2_dfa_match ()
find_limits מצא מגבלות התאמה ורקורסיה
קבל= לחלץ תת-מחרוזת שנלכדה
getall מחלץ את כל מחרוזות המשנה שנלכדו
/g התאמה גלובלית
ג'יטסטאק= הגדר גודל של מחסנית JIT
סמן הראה ערכי סימן
match_limit= להגדיר מגבלת התאמה
זיכרון הצג שימוש בזיכרון
התאמה של null_context עם הקשר NULL
offset= הגדר קיזוז התחלה
offset_limit= להגדיר מגבלת קיזוז
אוקטור= הגדר את הגודל של וקטור הפלט
recursion_limit= להגדיר גבול רקורסיה
להחליף= ציין מחרוזת החלפה
startchar הצג startchar כאשר רלוונטי
startoffset= זהה לקיזוז=
substitute_extedded השתמש ב-PCRE2_SUBSTITUTE_EXTENDED
substitute_overflow_length השתמש ב-PCRE2_SUBSTITUTE_OVERFLOW_LENGTH
substitute_unknown_unset השתמש ב-PCRE2_SUBSTITUTE_UNKNOWN_UNSET
substitute_unset_empty השתמש ב-PCRE2_SUBSTITUTE_UNSET_EMPTY
zero_terminate להעביר את הנושא כאפס סיום

ההשפעות של משנים אלה מתוארות בסעיפים הבאים.

מראה יותר טֶקסט

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

השמיים טקסט רמז השינוי מבקש שכל הטקסט שהתייעץ בו במהלך מוצלח
יש להראות התאמת דפוס על ידי המתורגמן. תכונה זו אינה נתמכת עבור JIT
התאמה, ואם מתבקשים עם JIT היא מתעלמת (עם הודעת אזהרה). מגדיר את זה
השינוי משפיע על הפלט אם יש מבט מאחור בתחילת התאמה, או א
מבט קדימה בסוף, או אם נעשה שימוש ב-\K בתבנית. דמויות שקודמות או אחריהן
ההתחלה והסוף של ההתאמה בפועל מסומנים בפלט באמצעות תווים '<' או '>'
מתחת להם. הנה דוגמה:

re> /(?<=pqr)abc(?=xyz)/
data> 123pqrabcxyz456\=allusedtext
0: pqrabcxyz
<<< >>>

זה מראה שהמחרוזת התואמת היא "abc", עם המחרוזות שלפני ואחריה
"pqr" ו-"xyz" לאחר התייעצות במהלך המשחק (בעת עיבוד הטענות).

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

re> /abc\Kxyz/
data> abcxyz\=startchar
0: abcxyz
^ ^ ^

שונה טקסט רמז, ה התחלה ניתן להשתמש במשנה עם JIT. עם זאת, שני אלה
השינויים סותרים זה את זה.

מראה מה היא ערך of את כל ללכוד קבוצות

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

בדיקות הסברים

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

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

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

מציאה את כל גפרורים in a מחרוזת

ניתן לבקש חיפוש אחר כל ההתאמות האפשריות בתוך נושא על ידי גלוֹבָּלִי or
/altglobal מַתקֵן. לאחר מציאת התאמה, פונקציית ההתאמה נקראת שוב
חפש את שאר הנושא. ההבדל בין גלוֹבָּלִי ו altglobal הוא כי
הראשון משתמש ב- start_offset ויכוח ל pcre2_match() or pcre2_dfa_match () כדי להתחיל
חיפוש בנקודה חדשה בתוך המחרוזת כולה (וזה מה שעושה פרל), בעוד ש-
האחרון עובר על נושא מקוצר. זה משנה את תהליך ההתאמה אם
התבנית מתחילה בקביעה מאחור (כולל \b או \B).

אם מחרוזת ריקה תואמת, ההתאמה הבאה תתבצע עם PCRE2_NOTEMPTY_ATSTART ו
דגלים של PCRE2_ANCHORED מוגדרים, כדי לחפש התאמה אחרת, לא ריקה, באותו הזמן
נקודה בנושא. אם התאמה זו נכשלת, קיזוז ההתחלה מתקדם והרגיל
ההתאמה נוסתה מחדש. זה מחקה את הדרך שבה Perl מטפלת במקרים כאלה בעת שימוש ב- /g מתקן
או לְפַצֵל() פוּנקצִיָה. בדרך כלל, קיזוז ההתחלה מתקדם בתו אחד, אבל אם
הקונבנציה החדשה מזהה את CRLF כשורה חדשה, והתו הנוכחי הוא CR
ואחריו LF, מתרחשת התקדמות של שני תווים.

בדיקות סובסטרינג הוֹצָאָה פונקציות

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

abcd\=copy=1,copy=3,get=G1

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

השמיים קבל הכל בדיקות משנה pcre2_substring_list_get(), אשר מחלץ את כל הלכודים
מחרוזות משנה.

אם שורת הנושא תואמת בהצלחה, מחרוזות המשנה חולצו על ידי הנוחות
פונקציות יוצאות עם C, G או L אחרי מספר המחרוזת במקום נקודתיים. זה
בנוסף לרשימה המלאה הרגילה. אורך המיתר (כלומר, התמורה מה-
פונקציית חילוץ) ניתנת בסוגריים אחרי כל תת מחרוזת, ואחריה השם
כאשר החילוץ היה לפי השם.

בדיקות מה היא החלפה פונקציה

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

בניגוד למחרוזות נושא, pcre2test אינו מעבד מחרוזות חלופיות לבריחה
רצפים. במצב UTF, מחרוזת החלפה נבדקת כדי לראות אם היא UTF-8 חוקי
חוּט. אם כן, הוא מומר בצורה נכונה למחרוזת UTF של יחידת הקוד המתאימה
רוֹחַב. אם זה לא מחרוזת UTF-8 חוקית, יחידות הקוד הבודדות מועתקות ישירות.
זה מספק אמצעי להעברת מחרוזת UTF-8 לא חוקית למטרות בדיקה.

המשתנים הבאים מגדירים אפשרויות (בנוסף לאפשרויות ההתאמה הרגילות) עבור
pcre2_substitute():

PCRE2_SUBSTITUTE_GLOBAL העולמי
substitute_extended PCRE2_SUBSTITUTE_EXTENDED
substitute_overflow_length PCRE2_SUBSTITUTE_OVERFLOW_LENGTH
substitute_unknown_unset PCRE2_SUBSTITUTE_UNKNOWN_UNSET
substitute_unset_empty PCRE2_SUBSTITUTE_UNSET_EMPTY

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

/abc/replace=xxx
=abc=abc=
1: = xxx = abc =
=abc=abc=\=גלובלי
2: =xxx=xxx=

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

/א ב ג/
123abc123\=replace=[10]XYZ
1: 123XYZ123
123abc123\=replace=[9]XYZ
נכשל: שגיאה -47: אין יותר זיכרון

פעולת ברירת המחדל של pcre2_substitute() הוא להחזיר PCRE2_ERROR_NOMEMORY כאשר הפלט
המאגר קטן מדי. עם זאת, אם האפשרות PCRE2_SUBSTITUTE_OVERFLOW_LENGTH מוגדרת (על ידי
באמצעות substitute_overflow_length מַתקֵן), pcre2_substitute() ממשיך לעבור
תנועות ההתאמה וההחלפה, על מנת לחשב את גודל המאגר כלומר
נדרש. כשזה קורה, pcre2test מציג את אורך המאגר הנדרש (הכולל
מקום עבור האפס האחורי) כחלק מהודעת השגיאה. לדוגמה:

/abc/substitute_overflow_length
123abc123\=replace=[9]XYZ
נכשל: שגיאה -47: אין יותר זיכרון: יש צורך ב-10 יחידות קוד

מתעלמים ממחרוזת חלופית עם התאמת POSIX ו-DFA. ציון התאמה חלקית
מעורר החזרת שגיאה ("ערך אופציה גרוע") מ pcre2_substitute().

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

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

הגדרת להתאים ו רקורסיה גבולות

השמיים match_limit ו recursion_limit השינויים מגדירים את המגבלות המתאימות במשחק
הֶקשֵׁר. מתעלמים מערכים אלה כאשר ה- find_limits צוין שינוי.

מציאה מינימום גבולות

אם find_limits קיים שינוי, pcre2test שיחות pcre2_match() מספר פעמים,
הגדרת ערכים שונים בהקשר ההתאמה באמצעות pcre2_set_match_limit() ו
pcre2_set_recursion_limit() עד שהוא מוצא את ערכי המינימום עבור כל פרמטר ש
להתיר pcre2_match() להשלים ללא שגיאות.

אם נעשה שימוש ב-JIT, רק מגבלת ההתאמה רלוונטית. אם נעשה שימוש בהתאמת DFA,
אף מגבלה אינה רלוונטית, ומתעלמים מהשינוי הזה (עם הודעת אזהרה).

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

מראה סימן שמות

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

מראה זיכרון שימוש

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

הגדרת a החל לקזז

השמיים לקזז modifier מגדיר היסט במחרוזת הנושא שבה ההתאמה מתחילה. שֶׁלָה
ערך הוא מספר יחידות קוד, לא תווים.

הגדרת an לקזז להגביל

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

הגדרת מה היא גודל of מה היא תפוקה וקטור

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

ערך אפס שימושי בעת בדיקת ה-API של POSIX מכיוון שהוא גורם regexec() להיות
נקרא עם וקטור לכידה NULL. כאשר לא בודקים את ה-API של POSIX, נעשה שימוש בערך אפס
לגרום pcre2_match_data_create_from_pattern() להיקרא, על מנת ליצור התאמה
בלוק בגודל המתאים בדיוק לתבנית. (לא ניתן ליצור התאמה
בלוק עם אוקטור באורך אפס; תמיד יש לפחות זוג אחד של קיזוז.)

חולף מה היא נושא as אפס

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

בעת בדיקה pcre2_substitute(), לשינוי זה יש גם השפעה של העברת ה-
מחרוזת החלפה בסיומה אפס.

חולף a NULL הקשר

בדרך כלל, pcre2test מעביר בלוק הקשר ל pcre2_match(), pcre2_dfa_match () or
pcre2_jit_match(). אם null_context השינוי מוגדר, עם זאת, NULL מועבר. זה
לבדיקה שפונקציות ההתאמה מתנהגות כהלכה במקרה זה (הן משתמשות ברירת מחדל
ערכים). לא ניתן להשתמש בשינוי זה עם ה- find_limits משנה או בעת בדיקת ה
פונקציית החלפה.

LA חֲלוּפָה תוֹאֵם פונקציה



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

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

תקלות תפוקה מן pcre2test



סעיף זה מתאר את הפלט כאשר פונקציית ההתאמה הרגילה, pcre2_match(), הוא
משומש.

כאשר השידוך מצליח, pcre2test מפלט את רשימת מחרוזות המשנה שנלכדו, החל ב-
מספר 0 עבור המחרוזת שתואמת לכל הדפוס. אחרת, הוא מוציא "אין התאמה"
כאשר ההחזר הוא PCRE2_ERROR_NOMATCH, או "התאמה חלקית:" ואחריו הערך החלקי
מחרוזת משנה תואמת כאשר ההחזר הוא PCRE2_ERROR_PARTIAL. (שימו לב שזה הכול
מחרוזת משנה שנבדקה במהלך ההתאמה החלקית; זה עשוי לכלול תווים לפני
התחלת ההתאמה בפועל אם הייתה מעורבת קביעת מבט מאחור, \K, \b או \B.)

לכל החזרה אחרת, pcre2test מוציא את מספר השגיאה השלילי של PCRE2 וקצר
ביטוי תיאורי. אם השגיאה היא בדיקת מחרוזת UTF שנכשלה, קיזוז יחידת הקוד של
התחלת התו הכושל מופקת גם היא. הנה דוגמה לאינטראקטיבי
pcre2test לָרוּץ.

$ pcre2test
PCRE2 גרסה 9.00 2014-05-10

re> /^abc(\d+)/
נתונים> abc123
0: ABC123
1: 123
נתונים> xyz
אין התאמה

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

re> /(a)|(ב)/
נתונים> א
0: א
1: א
נתונים> ב
0: ב
1:
2: ב

אם המחרוזות מכילות תווים שאינם מודפסים, הם יוצאים כ-\xhh escapes אם
הערך קטן מ-256 ומצב UTF אינו מוגדר. אחרת הם יוצאים כ-\x{hh...}
בורח. ראה להלן את ההגדרה של תווים שאינם מודפסים. אם ה /אחרטקסט
השינוי מוגדר, הפלט עבור תת-מחרוזת 0 מלווה את שאר הנושא
מחרוזת, מזוהה על ידי "0+" כך:

re> /cat/aftertext
נתונים> קטרקט
0: חתול
0+ ארקט

אם מתבקשת התאמה גלובלית, התוצאות של ניסיונות התאמה עוקבים מופקות פנימה
רצף, כך:

re> /\Bi(\w\w)/g
נתונים> מיסיסיפי
0: איס
1: ss
0: איס
1: ss
0: אייפ
1: עמ'

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

re> /xyz/
data> xyz\=offset=4
שגיאה -24 (ערך היסט רע)

שים לב שאמנם ניתן להמשיך בדפוסים על פני מספר שורות (הנחיה רגילה של ">" משמשת
להמשך), ייתכן ששורות הנושא לא. עם זאת, ניתן לכלול שורות חדשות בנושא
באמצעות \n escape (או \r, \r\n וכו', בהתאם להגדרת רצף השורה החדשה).

תפוקה מן LA חֲלוּפָה תוֹאֵם פונקציה



כאשר פונקציית ההתאמה החלופית, pcre2_dfa_match (), משמש, הפלט מורכב מ
רשימה של כל ההתאמות שמתחילות בנקודה הראשונה בנושא שבו יש
התאמה אחת לפחות. לדוגמה:

re> /(tang|tangerine|tan)/
data> מנדרינה צהובה\=dfa
0: קלמנטינה
1: טאנג
2: שזוף

שימוש בפונקציית ההתאמה הרגילה בנתונים אלו מוצא רק "טאנג". ההתאמה הארוכה ביותר
מחרוזת ניתנת תמיד ראשונה (וממוספרת אפס). לאחר החזרת PCRE2_ERROR_PARTIAL, ה
הפלט הוא "התאמה חלקית:", ואחריו תת המחרוזת התואמת חלקית. שימו לב שזה
הוא המחרוזת כולה שנבדקה במהלך ההתאמה החלקית; זה עשוי לכלול
תווים לפני ההתאמה בפועל מתחילים אם הצהרת lookbehind, \b, או \B הייתה
מְעוּרָב. (\K אינו נתמך עבור התאמת DFA.)

אם מתבקשת התאמה גלובלית, החיפוש אחר התאמות נוספות מתחדש בסוף
המשחק הארוך ביותר. לדוגמה:

re> /(tang|tangerine|tan)/g
נתונים> קלמנטינה צהובה וסולטנה חריפה\=dfa
0: קלמנטינה
1: טאנג
2: שזוף
0: טאנג
1: שזוף
0: שזוף

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

הפעלה מחדש לאחר A חלקי MATCH



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

re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|אוגוסט|sep|oct|nov|dec)\d\d$/
data> 23ja\=P,dfa
התאמה חלקית: 23 יא
data> n05\=dfa,dfa_restart
0: n05

למידע נוסף על התאמה חלקית, עיין ב- pcre2partial תיעוד.

הסבר



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

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

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

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

הסברים עם מספרית טיעונים

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

--->pqrabcdef
0 ^ ^ \d

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

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

re> /\d?[AE]\*/auto_calout
נתונים> E*
--->ה*
+0 ^ \d?
+3 ^ [AE]
+8 ^^ \*
+10 ^ ^
0: ה*

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

re> /a(*MARK:X)bc/auto_calout
נתונים> abc
--->abc
+0 ^ א
+1 ^^ (*MARK:X)
+10 ^^ ב
סימן אחרון: X
+11 ^ ^ ג
+12 ^ ^
0: ABC

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

הסברים עם מחרוזת טיעונים

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

re> /^ab(?C'first')cd(?C"second")ef/
נתונים> abcdefg
הסבר (7): 'ראשון'
--->abcdefg
^ ^ ג
הסבר (20): "שני"
--->abcdefg
^ ^ ה
0: abcdef

ללא הדפסה תווים



מתי pcre2test מפלט טקסט בגרסה הקומפילטית של דפוס, בתים מלבד
32-126 מטופלים תמיד כתווים שאינם מודפסים ולכן מוצגים כ-hex
בורח.

מתי pcre2test מוציא טקסט שהוא חלק מותאם של מחרוזת נושא, הוא מתנהג
באותו אופן, אלא אם הוגדר מקום אחר עבור התבנית (באמצעות ה- /locale
מַתקֵן). במקרה זה, ה isprint () הפונקציה משמשת להבדיל בין הדפסה לבין לא
הדפסת תווים.

חסכון ו שחזור מלוקט כתמים



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

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

כאשר דפוס עם לדחוף ה-modifier הידור בהצלחה, הוא נדחף לערימה של
דפוסים מלוקט, ו pcre2test מצפה שהשורה הבאה תכיל דפוס חדש (או
פקודה) במקום שורת נושא. באמצעי זה, ניתן להרכיב מספר תבניות
ונשמר. ה לדחוף השינוי אינו תואם עם פוסיקס, ומשתני שליטה הפועלים
בזמן המשחק מתעלמים (עם הודעה). ה jitverify השינוי חל רק בקומפילציה
זְמַן. הפקודה

#לשמור

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

#לִטעוֹן

קורא את הנתונים בקובץ, ולאחר מכן מסדר את ביטול הסדרה, עם ה-
דפוסי הידור שנוצרו שנוספו לערימת הדפוסים. הדוגמה בחלק העליון של
ניתן לאחזר מחסנית על ידי הפקודה #pop, שחייבים לבוא אחריה שורות של נושאים
שיש להתאים לדפוס, להסתיים כרגיל על ידי קו ריק או סוף של
קוֹבֶץ. פקודה זו עשויה להיות אחריה רשימת משנה המכילה רק משנה בקרה
שפועלים לאחר הידור של דפוס. באופן מיוחד, hex, פוסיקס, ו לדחוף אינם
מותר, וגם לא כל שינוי של הגדרות אפשרויות. עם זאת, משנים JIT מותרים.
הנה דוגמה ששומרת וטוענת מחדש שני דפוסים.

/abc/push
/xyz/push
#שמור קובץ זמני
#טען קובץ זמני
מידע #פופ
xyz

#pop jit,bincode
א ב ג

If jitverify משמש עם #pop, זה לא מרמז באופן אוטומטי ג'יט, וזה שונה
התנהגות מרגע השימוש בו על דפוס.

השתמש ב-pcre2test באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

  • 1
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player הוא נגן מדיה חינמי
    תוכנה, חלקה מבוססת על WMP ו-VLC. ה
    שחקן הוא בסגנון מינימליסטי, עם
    יותר מעשרה צבעי נושא, ויכולים גם
    ב ...
    הורד את AstrOrzPlayer
  • 2
    movistartv
    movistartv
    Kodi Movistar+ TV es un ADDON עבור XBMC/
    Kodi que permite disponer de un
    decodificador de los servicios IPTV de
    Movistar integrado en uno de los
    mediacenters מא...
    הורד את movistartv
  • 3
    קוד :: חסימות
    קוד :: חסימות
    Code::Blocks הוא קוד פתוח בחינם,
    חוצה פלטפורמות C, C++ ו-Fortran IDE
    נבנה כדי לענות על הצרכים התובעניים ביותר
    של המשתמשים שלה. זה נועד להיות מאוד
    מרחיב ...
    קוד הורדה::בלוקים
  • 4
    בין
    בין
    בין ממשק Minecraft או מתקדם
    ומעקב אחר נתונים/מבנה הוא כלי ל
    להציג סקירה כללית של מיינקראפט
    העולם, מבלי ליצור אותו בפועל. זה
    פחית ...
    הורד בין
  • 5
    MSYS2
    MSYS2
    MSYS2 הוא אוסף של כלים ו
    ספריות המספקות לך א
    סביבה קלה לשימוש לבנייה,
    התקנה והרצה של Windows מקורי
    תוֹכנָה. זה נוגד...
    הורד את MSYS2
  • 6
    libjpeg-turbo
    libjpeg-turbo
    libjpeg-turbo הוא Codec תמונה JPEG
    שמשתמש בהוראות SIMD (MMX, SSE2,
    NEON, AltiVec) כדי להאיץ את קו הבסיס
    דחיסה ופירוק JPEG פועלים
    x86, x8...
    הורד את libjpeg-turbo
  • עוד »

פקודות לינוקס

Ad