צופיה שואלת:
יש לי טקסט תנ”כי. בתוך הטקסט הזה מסומנים פירושים (באפור וקטן יותר), ואותיות הפסוקים באדום עם פונט אחר (סגנון תו אחר בקיצור). אני רוצה לדעת אם יש אפשרות להיעזר ב-GREP בסימון של אותיות הפסוקים.
בהתחלה חשבתי שזה קל כי הנוסחה היא למצוא כל מילה שמכילה רק אות אחת, אבל אז הבנתי שבעצם יש פסוקים בעלי שתי אותיות. מה שכן, אלו אותיות לא מנוקדות, אולי זה עוזר במשהו?
בקיצור האם יש לך רעיון לפקודה בGREP שיכולה לפתור את העניין?
תשובה:
אכן התשובה טמונה בגוף השאלה. מכיוון שהטקסט של התנ”ך הוא מנוקד, ולעולם לא תהיה בו מילה לא מנוקדת, נוכל באמצעות סגנון GREP או חיפוש GREP למצוא את האותיות שמסמנות פסוקים ולתת להם סגנון תו שונה.
בעצם אנחנו צריכים למצוא אות אחת או צמד של אותיות עבריות, לא מנוקדות, שנמצא/ות בין שני רווחים.
זו הנוסחה של החיפוש (משמאל לימין, למעט הא-ת שהוא מימין לשמאל):
\s[א-ת]{1,2}\s
עכשיו נסביר במילים:
יש לנו רווח (\s), לאחריו סוגריים מרובעים שבתוכם טווח האותיות א' עד ת' [א-ת]. המשמעות של סוגריים מרובעים היא חפש את אחד הסימנים מתוך מה שבתוך הסוגריים (לדוגמה, אם היה כתוב שם [איש], אינדיזיין הייתה מוצאת את האות א או את האות י או את האות ש. המקף (מינוס) בין האות א' לת' מסמן טווח, כלומר על אינדיזיין להחזיר לנו את אחת האותיות שבין א' לת'. הסוגריים המסולסלים מסמנים הישנוּת של מספר התווים. אם היינו רושמים את המספר 2 בלבד, אינדיזיין הייתה מוצאת רק מילים בנות 2 אותיות שנמצאות בין 2 רווחים. כאשר רושמים מספר קטן, פסיק ומספר גדול יותר המשמעות היא חזרה על התו הקודם (או על קבוצת התווים הקודמת) מספר פעמים שבין המספרים האלה, כלומר במקרה שלנו או אות אחת או שתי אותיות {1,2}. אבל אינדיזיין לא תמצא מילה עם 3 אותיות ומעלה שאינה מנוקדת.
הסתייגות:
יכול להיות שבטקסט מופיעות מילים נוספות שאינן מנוקדות ואין להן סימני זיהוי כסוגריים וכד', למשל סימוני העולים לתורה (ראשון, שני וכו’), סימוני פרשה פתוחה או סתומה, ציוני הפרקים, מילים של קרי וכתיב וכו'.
בחלק מהמקרים זה לא יפריע לנו, למשל המילה ראשון היא בת 5 אותיות ולכן לא תימצא בנוסחה דלעיל, אך המילה שני תופיע אם נחפש מילים בנות 3 אותיות (ברוב פרקי התנ"ך יש מספר דו-ספרתי של פסוקים, אבל יש גם מקרים של מספרים תלת-ספרתיים, למשל פרק קיט בתהלים, כך ששם נצטרך לרשום {1,3}).
כמו כן במקרים של מילים שהכתיב והקרי שונים, יש מקרים של מילים עם 2 אותיות כך שאם זה לא מנוקד – הנוסחה תמצא גם אותם.
דבר נוסף –
ב-GREP יש יותר מדרך אחת להגיע לנוסחה הרצויה, כך שהביטוי שכתבתי לא מחייב ובהחלט אפשר למצוא נוסחאות טובות יותר – למשל בנוסחה הראשונה שהצעתי לא תימצא האות הראשונה בקטע, מכיוון שלא מופיע לפניה רווח. אם את הרווח הראשון נחליף בסימן \<, הנוסחה תמצא גם את הפסוק הראשון. אז למעשה נוסחה טובה יותר מאשר הנוסחה שהצעתי קודם:
\<[א-ת]{1,2}\s
בהצלחה!






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