एक उदाहरण के रूप में निम्न इनपुट पर विचार करें:इस तार योजना को पार्स करने के लिए मैं रेगेक्स का उपयोग कैसे करूं?
[Ami]Song lyrics herp derp [F]song lyrics continue
[C7/B]Song lyrics continue on another [F#mi7/D]line
मैं ऊपर पार्स और निम्नलिखित के रूप में यह गूंज की जरूरत है:
<div class="chord">Ami</div>Song lyrics herp derp <div class="chord">F</div>song lyrics continue
<div class="chord">C7/B</div>Song lyrics continue on another <div class="chord">F#mi7/D</div>line
तो मूल रूप से, मैं की जरूरत है:
1) [
से <div class="chord">
,
2) फिर ब्रैकेट की सामग्री संलग्न करें,
3) फिर ]
से </div>
बदलें।
... PHP 5.3+ का उपयोग कर।
यह एक साफ समाधान की तरह दिखता है, आश्चर्य है कि मैंने इससे पहले क्यों नहीं सोचा था। क्या यह रेगेक्स से तेज/बेहतर है? –
@RiMMER: वे दोनों रैखिक समय होना चाहिए लेकिन यह समाधान संभवतः तेज़ होगा क्योंकि कम ओवरहेड है। रेगेक्स के रूप में मज़ेदार हैं वे अभ्यास में हमेशा सही जवाब नहीं हैं :) – Cam
अच्छा, यह निश्चित रूप से सबसे अच्छा समाधान जैसा दिखता है, लेकिन मैं कुछ भी स्वीकार करने से पहले दूसरों को वोट देने का इंतजार करूंगा, मुझे आशा है कि यह सबके साथ ठीक है :) –