כללי עזרה בגרפ - מציאת תו ראשון במילה שניה

  • הוסף לסימניות
  • #1
אני מחפש גרם למילה שניה.
מה שניסיתי הוא חיפוש מאחור חיובי וזה היה אמור להיות כך
קוד:
(?<=^.+? ).
שפרשו תמצא לי תו כשלהוא, אבל רק כזה שהיה לפניו תחילת פסקה ואחריו רצף של תוים או תו אחד ואחריו רוח.
משום מה הוא לא מוצא. יש לי הרגשה שה+ עושה כאן את הבלאגן, מכיון שאם אני מחפש בצורה הזו תוים בודדים הוא כן מוצא. נסיתי גם לעשות {0,} ועדיין אותה בעיה.
האם + לא עובד היטב עם חיפוש מלפנים ומאחור?
 
  • הוסף לסימניות
  • #2
נכתב ע"י 5127109;2200016:
אני מחפש גרם למילה שניה.
מה שניסיתי הוא חיפוש מאחור חיובי וזה היה אמור להיות כך
קוד:
(?<=^.+? ).
שפרשו תמצא לי תו כשלהוא, אבל רק כזה שהיה לפניו תחילת פסקה ואחריו רצף של תוים או תו אחד ואחריו רוח.
משום מה הוא לא מוצא. יש לי הרגשה שה+ עושה כאן את הבלאגן, מכיון שאם אני מחפש בצורה הזו תוים בודדים הוא כן מוצא. נסיתי גם לעשות {0,} ועדיין אותה בעיה.
האם + לא עובד היטב עם חיפוש מלפנים ומאחור?

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

היה לי ויכוח פילוסופי עם משהו האם צריך גרפ בתוך גרפ, כי עד כמה שמצאו את הגרפ הראשון אפשר יהא למצוא גם את הגרפ השני איכשהוא. והוא הוכיח לי שזה אפשר בREGEX, כלומר תווים כללים - בכל תוכנה שהיא, אבל הנה - באינדי מכיון שיש מגבלה על מאחור חיובי וכו' לא יתכן אלא בגרפ אחר גרפ.
 
  • הוסף לסימניות
  • #4
בהחלט גם אני חושב שיש צורך בגרפ בתוך גרפ, וגם אני כתבתי בגלל זה סקריפט לכך.
למרות שזה בחלט לא מציאות מאד שכיחה.
 
  • הוסף לסימניות
  • #5
לחיפוש כל מילה שניה:
קוד:
^.+? \K.+?(?= )
 
  • הוסף לסימניות
  • #6
היסוד של \K מאוד פשוט ומאוד חשוב בו זמנית.
הוא חותך לך את הגרפ במקום שמוסיפים את זה, ולא מתייחס יותר למה שנכתב לפניו.
ניתן להשתמש בזה כמה פעמים שרוצים במחרוזת.
 
  • הוסף לסימניות
  • #7
נכתב ע"י ונתנו10;2202231:
ניתן להשתמש בזה כמה פעמים שרוצים במחרוזת.
מה טעם לחתוך כמה פעמים שרוצים? לכאורה החיתוך האחרון הוא היחיד שמשנה?


נ"ב כיון שלא כולם יקראו כל האשכול, אציין שהשימוש ב\K איננו נתמך בכל גרסאות אינדזיין.
 
  • הוסף לסימניות
  • #8
אז ככה בעצם אפשר לחפש גרפ בתוך גרפ בתוך גרפ בתוך גרפ וכו'.
אפשר למצוא ככה כל תו שאין לפניו את האות מ' אבל רק במילה שניה.
אבל בכל אופן עדיין נצרך סקריפטינג כדי להגיע לתוצאות יפות עם חיפוש והחלה של סגנונות, כיון שאם אנו מחפשם עם K\ אז במחרוזת החיפוש אנחנו יכולים להגדיר סגנון לכל המחרוזת בלבד בלי אפשרות לחתוך באמצע.
נניח שאני רוצה לחפש מילה שניה עם סגנון תו מסוים. אז בגרפ אחר גרפ אני עושה לחפש עד המילה השניה, ובחיפוש השני אני מחפש סגנון תו, ומה שאין כן עם K, הלא כן?
 
  • הוסף לסימניות
  • #9
נכתב ע"י 5127109;2202288:
אז ככה בעצם אפשר לחפש גרפ בתוך גרפ בתוך גרפ בתוך גרפ וכו'.
אפשר למצוא ככה כל תו שאין לפניו את האות מ' אבל רק במילה שניה.
אבל בכל אופן עדיין נצרך סקריפטינג כדי להגיע לתוצאות יפות עם חיפוש והחלה של סגנונות, כיון שאם אנו מחפשם עם K\ אז במחרוזת החיפוש אנחנו יכולים להגדיר סגנון לכל המחרוזת בלבד בלי אפשרות לחתוך באמצע.
נניח שאני רוצה לחפש מילה שניה עם סגנון תו מסוים. אז בגרפ אחר גרפ אני עושה לחפש עד המילה השניה, ובחיפוש השני אני מחפש סגנון תו, ומה שאין כן עם K, הלא כן?
לא הבנתי עדיין מה נותן לחתוך\K יותר מפעם אחת, הרי זה לא יוצר קבוצות, ומהחיתוך האחרון אחורה הכל לא מופיע בתוצאה, ואילו לגבי החיפוש אין שום השלכה. אז למה זה מועיל?

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

פרוגבוט

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

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

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

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

לוח מודעות

הפרק היומי

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


תהילים פרק כה

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