әмбебап тіркеу коды

Мен, әсіресе, regex-кодта веб-әзірлеуде жаңадан бастаймын және егер олар iframe-кода немесе URL-мекен-жайында немесе javascript-да болатынына қарамастан сайттың координаттарын алуға болатын әмбебап кодты жазу мүмкін бе екенін білгіңіз келеді.

<div id="g_map"></div>
<script src="http://maps.google.com/maps?file=api&v=2&key=key" type="text/javascript"></script>
<script type="text/javascript"> 

//
1
Қандай болжам жасалуы мүмкін? (Бұл қалыпты өрнектердің ең маңызды бөлігі). Мұндай білімдердің атаулары, url компоненттері және т.б. сияқты нәрселер мүмкін. Дегенмен, кейбір шектеулерсіз әдеттегі флот пен координат арасындағы айырмашылықты мүмкін емес деп санаймын.
қосылды автор fncomp, көзі
(менің ағылшын тілім үшін кешірім)
қосылды автор JO JOJO, көзі
ондық сандарды анықтайтын және қалғандарын жойатын кейбір PHP немесе JS функциясын жазу
қосылды автор JO JOJO, көзі
тек 2-жолда қалдырыңыз - бірінші сандар (бірінші - ендік, ондық сан ондық)
қосылды автор JO JOJO, көзі
Менің ойымша, бұл барлық криптографиялық өшіру жолына айналады деп ойлаймын, онымен ондық сан, бұл координаттар. Бұл мүмкін бе?
қосылды автор JO JOJO, көзі
басқаша айтқанда, ондық санның қалғанын жойғым келеді
қосылды автор JO JOJO, көзі
Жоқ, мен барлық таңбаларды алып тастап, координаттар ғана қалғым келеді, содан кейін regex пайдалану оңай ...
қосылды автор JO JOJO, көзі
Ия мүмкін, бірақ ол нәзік. Сізге бұл туралы айтуға тырысамыз.
қосылды автор FailedDev, көзі
@JOJOJO және бірнеше ондық сандар болған кезде не болды? Сіз қайсысын алып тастасыз және қайсысын істемесіз? Және не болады?
қосылды автор FailedDev, көзі
Тіркеуді ұмытыңыз. DOM ағашын немесе кез келген басқа қызметті осы тапсырма үшін regexes-дан өзгеше ойлауға пайдаланыңыз.
қосылды автор FailedDev, көзі
Иә, біз бәріміз «әмбебап регрессиялық кодексті» алғымыз келеді ...
қосылды автор NikiC, көзі
Дәлдік дәлдігі әрқашан бірдей болса, іс жүзінде мүмкін болады.
қосылды автор Tim, көзі
РЕЖЕХ, бұл сөздің бұл деген сөздің мағынасын білдіреді деген ойдамын.
қосылды автор Tim, көзі

2 жауаптар

First example:

Келесі XPath 1.0 өрнегін бағалау:

normalize-space(translate(.,translate(.,' 0123456789.', ''), ' '))

produces:

44.799439 20.483494

This can be done with any XPath engine and the context node must be the document-node, or within XSLT 1.0, as below:


 
 

 
     
 

When applied on this xml document (the same as the provided one, but completed):

<html>
    <div id="g_map"></div>
    <script src="http://maps.google.com/maps?file=api&v=2&key=key" type="text/javascript"></script>
    <script type="text/javascript">
    //


</script>
</html>

the result is:

44.799439 20.483494

Second example:


 

 
  
  
   
 

produces:

..44.7984820.473856

және аздап тазалау қажет.


II. Елеулі өңдеу (XPath 2.0/XSLT 2.0)

This transformation is really "universal" and works on both examples:


 
 

 
     
     
       
       
     
 

When applied on the second XML:

<div class="map">
    <iframe frameborder="0" border="0" scrolling="no"  marginwidth="0" 
             marginheight="0" title=""               
src="http://www.kolektiva.rs/beograd/dailydeal/vendor/map/center/44.79848,20.473856/">
</iframe>

the wanted, correct result is produced:

44.79848  20.473856 

when applied on the xml for the first example, it also produces the wanted result:

44.799439  20.483494 
3
қосылды
біз славяндарбыз :)
қосылды автор JO JOJO, көзі
қандай да бір жолды тек ондық сандарды алу керек, ал мүмкін ондық сандардың алдында болса (-) минус. Алдын-ала рақмет
қосылды автор JO JOJO, көзі
ешқандай проблема емес, бірақ жолдағы өзгерістер әрдайым бірдей емес екенін есте сақтаңыз ... Мен ондық сандардың кез келгенін тартып аламын, себебі олар координаттар және басқа ешқандай сан жоқ,
қосылды автор JO JOJO, көзі
Бірінші мысалда жолды қайда қою керек және сіздің xpath экспрессте қалай қоңырау шалу керек
қосылды автор JO JOJO, көзі
Иә, бұл өте керемет!
қосылды автор JO JOJO, көзі
Мен дәл қазір сәлемдемемен - 2 сағат ішінде жауап беремін.
қосылды автор Dimitre Novatchev, көзі
@JOJOJO: Жауапымды бірыңғай, «әмбебап» XSLT 2.0 шешімі арқылы жаңарттым :). Славямен әңгімелесуге қуаныштымын :)
қосылды автор Dimitre Novatchev, көзі
@JOJOJO: Сізді құттықтаймыз.
қосылды автор Dimitre Novatchev, көзі

Мен сіздің сұрағыңызды дұрыс түсіндіретіндігіне 100% сенімдімін. Бірақ егер сіз қаласаңыз, 44.79848 және 20.473856 нөмірлерін жоғарыда келтірген екі бөліктен (жоғарыдан өзгешелік емес) алып тастау керек болса, онда иә, ешқандай проблема жоқ.

Сіз неғұрлым көп болса, соғұрлым әдеттегі өрнектерді қолдану керек деп ойлаймын.

Менің ойымша, сіз өзіңізге көмектесетін қосымша жауаптар алғыңыз келе ме?

0
қосылды
жақсы, жауап үшін рахмет
қосылды автор JO JOJO, көзі
Міне, мен қалай әрекет етемін: $ string = ' maps.google.com/maps/api/… ; preg_match_all ('# (([0-9] +) {1,3} \. ([0-9] +)) # -', $ string, $ сәйкестіктер); print_r ($ сәйкестік [1]); бірақ мен мынаны аламын: Array ([0] => 186x186 [1] => 42.052661 [2] => 88.049441) ... алаптың [0] жай ғана [1] [2] (минус), [2] екінші ондық сандар - координаттар бар ма?
қосылды автор JO JOJO, көзі
Иә, сіз дұрыс деп ойлаймын, ондағы жолдың ондықтарынан алатын кейбір жалпы кодын жасағым келеді
қосылды автор JO JOJO, көзі
Жауап үшін рахмет
қосылды автор JO JOJO, көзі
Мұнда сіз: \ d \. \ D
қосылды автор Legogris, көзі
Мен жазамын \ d +. \ D +. Қалай болғанда да, сіз бұл құралдарды (PHP) жақсы меңгерген болсаңыз, бұл шешілетін болады.
қосылды автор Legogris, көзі