עבור לתוכן

ביטוי רגולרי כדי "לתפוס" תוכן תגים בקוד html

Featured Replies

פורסם

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

למשל בקוד html הבא אני רוצה לאתר התוכן של התג meta name=robots כלומר את המחרוזת: index,follow,NOODP שהיא למעשה התוכן של התג.

איזה ביטוי עלי לכתוב?

קוד לדוגמה:

<!-- Vignette V6 Wed Apr 07 19:55:55 2010 -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<!-- RC 6/4/02 12:01PM --><!-- Site Created by realcommerce Ltd. of the CommerceAge Group. --><HTML><HEAD><META NAME="ROBOTS" CONTENT="index,follow,NOODP"><meta name="keywords" content="israel, news, yedioth, ahronoth, hebrew, jewish, arab, palestine, intifada, update, search, israeli, newspaper, jerusalem, tel aviv, yediot, aharonoth, middle east, west bank, quotes, portal, maccabi, hapoel, beitar, [url]www.ynet.co.il"><meta[/url] name="description" content="Ynet דף הבית: אתר החדשות המוביל בישראל מבית ידיעות אחרונות. סיקור מלא של חדשות מישראל והעולם, ספורט, כלכלה, תרבות, אוכל, מדע וטבע, כל מה שקורה וכל מה שמעניין ב ynet"><META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta name="verify-v1" content="clJCcfhqI7bPnIGYni5qMgvt0et8AX5TV2vNeQUwi1s=" /><meta name="verify-v1" content="5AyMwOQ/SaNZ7R/pb4vGIuZKmwSx5eBJEHrB80zC59o=" /><meta name="verify-v1" content="THIFG8J93KJhvN2xppxiD7KztqU6X045b2ZIT/sf9JI=" /><script type='text/javascript'>_pageRefresher={c:{},i:function(){var a=this;window.pageRefreshDisable=function(g){if (!g) var g='flashvideoplayer';a.c[g]=true;};window.pageRefreshEnable=function(g){if (!g) var g='flashvideoplayer';a.c[g]=false;};a.t();},t:function(){var a=this;setTimeout(function(){var o=false;for (var g in a.c) {if (a.c[g]) {o=true;break;};};if (!o) {window.location.reload();};a.t();},420000);}};_pageRefresher.i();</script><!-- [url]http://www.ynetnews.com[/url] -->
<title lang=he>ynet חדשות תוכן ועדכונים - ידיעות אחרונות</title>
<SCRIPT language="JavaScript">

פורסם

אתה יכול לחפש מחרוזת התואמת את

'<META.*?NAME="ROBOTS".*?>'

א"כ במחרוזת שמצאת, חפש

'CONTENT="(.*?)"'

ותוציא את group 1 (מה שבסוגריים..).

צריכה להיות אפשרות לחפש את הבטוי בהתעלמות מה-case (ז"א case insensitive).

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

פורסם
  • מחבר

א. תודה

ב. אולי robots לא יבוא בתוך מרכאות?

ג. איך מוציאים את מה שבגרופ1?

פורסם

היבטוי הזה אמור לעבוד:

#<META [^\>]*NAME[\s]*=[\s]*[\"\']?ROBOTS[\"\']?[\s]* [^\>]*CONTENT[\s]*=[\s]*[\"\'](.*)[\"\'][^\>]*>#i

אבל הרבה יותר חשוב, באיזה שפה אתה משתמש?

לדוגמה בPHP אפשר להשתמש בSimpleXML, חוץ מזה שאפשר להשתמש בהרבה שפות בXPath וכדומה.

פורסם
  • מחבר

אכן עובד

vb.net

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים