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

  • הוסף לסימניות
  • #1
הנה שאלה שלדעתי קשה, אז לכל חובבי הגרעפ:

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

(הפתרון שלי עובד רק עם CS6 ומעלה, כמדומני).

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

אריאל
 
  • הוסף לסימניות
  • #2
(?=.+$)
עם רווח לפני הנוסחה
 
  • הוסף לסימניות
  • #3
לא עובד. כשמשתמשים בזה כסגנון גרעפ, זה משפיע על כ-ל הרווחים בפסקה; ואפילו בחיפוש גרעפ רגיל, לרוב אכן עובד, אבל לפעמים מוצא רווחים באמצע הפסקה (למשל אחרי הפניה להערות שוליים).
 
  • הוסף לסימניות
  • #5
אינדיזיין קרס מדי הרבה פעמים בעת הנסיון למצוא תשובה. אז אוותר :)
ואעבוד בשיטה הטובה של גרעפ רגיל ולא סגנונות מקוננים...
 
  • הוסף לסימניות
  • #6
(?<=^[^ ]) |(?<=^[^ ]{2}) |(?<=^[^ ]{3}) |(?<=^[^ ]{4}) |(?<=^[^ ]{5})

מוצא עד מילים של 5 תווים, אפשר להמשיך את המחרוזת לפי האורך של המילים הקיימות, ואם זה טקסט מנוקד צריך להכפיל את המספר
אבל מסתמא לא לזה התכוונת..
 
  • הוסף לסימניות
  • #7
נכתב ע"י ונתנו10;1722109:
אינדיזיין קרס מדי הרבה פעמים בעת הנסיון למצוא תשובה. אז אוותר :)
ואעבוד בשיטה הטובה של גרעפ רגיל ולא סגנונות מקוננים...

איך אתה עושה את זה בגרפ רגיל?
 
  • הוסף לסימניות
  • #8
נכתב ע"י avram;1722325:
(?<=^[^ ]) |(?<=^[^ ]{2}) |(?<=^[^ ]{3}) |(?<=^[^ ]{4}) |(?<=^[^ ]{5})

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

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

התשובה עד סוף היום, ב"נ. :)
 
  • הוסף לסימניות
  • #9
\s(?=.+$)
זה עבד לי בגרפ אבל לא בגרפ סטייל...
לא מוצא שום רעיון. :(
 
  • הוסף לסימניות
  • #10
כן: למצוא את הרווח הראשון בפסקה בלבד, ושזה יעבוד כסגנון גרעפ.

(ומהטרה שיהיה אפשר לשלוט ברוחב הרווח ע"י החלת סגנון תו - שימושי למלות פתיח)
 
  • הוסף לסימניות
  • #11
והתשובה היא:

קוד:
^\S+\K

שימו לב שיש רווח אחרי ה-K.

זהו!

פעם ראשונה שהכרתי את ה-\K הזה היה אתמול.

מה שהוא עושה זה מאוד דומה ל-positive lookbehind. זאת אומרת, הוא משליך מהתוצאה של החיפוש את כל מה שבא לפניו.

כי כידוע, עיקר הבעיה ב-positive lookbehind זה שאי אפשר לתת לו מספר תווים בלתי-קבוע. וזה הבעיה אצלנו, שאי אפשר לדעת בת כמה תווים המילה הראשונה.

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

(הבנתי שאדובי הוסיפו את זה רק מ-CS6.)
 
  • הוסף לסימניות
  • #12
נכתב ע"י אריאל וו;1723141:
והתשובה היא:

קוד:
^\S+\K

שימו לב שיש רווח אחרי ה-K.

זהו!


פעם ראשונה שהכרתי את ה-\K הזה היה אתמול.

מה שהוא עושה זה מאוד דומה ל-positive lookbehind. זאת אומרת, הוא משליך מהתוצאה של החיפוש את כל מה שבא לפניו.

כי כידוע, עיקר הבעיה ב-positive lookbehind זה שאי אפשר לתת לו מספר תווים בלתי-קבוע. וזה הבעיה אצלנו, שאי אפשר לדעת בת כמה תווים המילה הראשונה.

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

(הבנתי שאדובי הוסיפו את זה רק מ-CS6.)

נפלא
היכן המקור של זה? אולי נמצא עוד חידושים...
זה לא מופיע בעזרה של CS6 לפי מה שאני מוצא
 
  • הוסף לסימניות
  • #13
בחיפוש אני רואה שזה חלק משפת הגרפ של לינוקס ויוניקס, כנראה זה לא משהו שקשור דווקא לאינדזיין באמת וכמו [^] שגם לא מופיע רשמית
 
  • הוסף לסימניות
  • #14
זה לא עובד בסגנון מקונן, ובחיפוש זה מוצא פעם אחת בשתי פסקאות, ורק אם אני מחפש מלמטה למעלה זה מוצא כל פסקה
 
  • הוסף לסימניות
  • #15
עובד מצוין, אבל רק ב-CS6 ומעלה.
 
  • הוסף לסימניות
  • #17
נכתב ע"י eliezer;1723232:
נפלא
היכן המקור של זה? אולי נמצא עוד חידושים...
זה לא מופיע בעזרה של CS6 לפי מה שאני מוצא

ראיתי את זה באיזה פורום, לא ברשימה מסודרת.
 
  • הוסף לסימניות
  • #18
נכתב ע"י אריאל וו;1723271:
עובד מצוין, אבל רק ב-CS6 ומעלה.

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

קבצים מצורפים

  • Untitled.mp4
    1.5 MB · צפיות: 15
  • הוסף לסימניות
  • #19
נכתב ע"י avram;1723272:
אני מדבר על CC 2015

מעניין. באמת ב-2015 נראה שיש באג. סתם ככה זה לא עובד, אבל הצלחתי לשכנע את אינדיזיין ע"י הוספת פקודת single line on:

קוד:
(?s)^\S+\K

שוב, עם רווח בסוף.
 
  • הוסף לסימניות
  • #20
נכתב ע"י avram;1723290:
מצורף צילום מסך מ CC 2015, זו התנהגות ממש מוזרה, הוא מוצא רק אחת לכמה פעמים, ובמקונן הוא מצא רק פסקה אחת, מה זה יכול להיות?

כנראה שהוא חושב שכמה פסקאות עוקבים עם אותו סגנון זה הכל נקרא מציאה אחת ולכן הפתרון שהבאתי (single line on) עובד?
 

פרוגבוט

תוכן שיווקי
פרסומת

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

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

לוח מודעות

הפרק היומי

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


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה