मैं रेगुलर एक्सप्रेशन के लिए निम्न टोकन का सामना किया है: [\s\S]*?
[ s S] * के बीच क्या अंतर है? तथा ।*?
यदि मैं यह सही ढंग से समझ, चरित्र वर्ग का अर्थ है "एक खाली स्थान के चरित्र या एक गैर-सफ़ेद चरित्र से मेल खाते हैं।" इसलिए, यह .*?
एक संभावित अंतर यह है कि आमतौर पर .
न्यूलाइन से मेल नहीं खाता है। हालांकि, यह नियमित अभिव्यक्ति रूबी में लिखी गई थी और m
modifier पारित किया गया था जिसका अर्थ है कि .
वास्तव में, न्यूलाइन से मेल खाता है।
वहाँ .*?
के बजाय [\s\S]*?
का उपयोग करने के मामले में यह मदद करता है में किसी भी अन्य कारण है, नियमित अभिव्यक्ति मैं देख रहा हूँ लाइन 97 पर HEADER_PATTERN निरंतर में sprockets library अंदर प्रकट होता है पूर्ण अभिव्यक्ति है:
/
\A \s* (
(\/\* ([\s\S]*?) \*\/) |
(\#\#\# ([\s\S]*?) \#\#\#) |
(\/\/ ([^\n]*) \n?)+ |
(\# ([^\n]*) \n?)+
)
/mx
मैं आपकी अटकलें साझा करता हूं। शायद, यह मदद कर सकता है अगर आप हमें पूरे regxp या संदर्भ का उपयोग करते हैं जिसमें इसका उपयोग किया जाता है। – sawa
@sawa यह एक अच्छा विचार है, धन्यवाद। मैंने अपना प्रश्न संपादित कर लिया है। –
रेगेक्स जोड़ने के लिए धन्यवाद। अब, यह और भी अजीब लग रहा है क्योंकि यह 'm' का उपयोग कर रहा है, और' [^ \ n] 'का उपयोग करके इसका निपटारा करने के लिए तैयार है। – sawa