मैं वाइल्डकार्ड स्ट्रिंग मैच एपीआई (रेगेक्स मैच नहीं) की तलाश में हूं। मैं Win32 एपीआई के अलावा कुछ भी उपयोग नहीं कर सकता।वाइल्डकार्ड स्ट्रिंग मैच करने के लिए Win32 एपीआई
उत्तर
FindFirstFile
और FindNextFile
एपीआई वाइल्डकार्ड मैच करते हैं, लेकिन केवल फाइलनामों के खिलाफ।
आप कुछ भी लेकिन Win32 का उपयोग नहीं कर सकते हैं? एसटीएल या सीआरटी के बारे में क्या? क्या आप बूस्ट का उपयोग कर रहे हैं?
Win32 API प्रतिबंध के बिना, मैं कुछ ओपन-सोर्स प्रोजेक्ट से कोड का उपयोग करने की अनुशंसा करता हूं। एक और विकल्प ग्लोब को रेगेक्स में अनुवाद करना होगा, जो मुझे लगता है कि रेगेक्स प्रतिस्थापन ऑपरेशन के साथ किया जा सकता है।
संपादित करें:
वास्तव में क्या आपकी आवश्यकता है: सबसे पहले गूगल मैच PHP कोड है? क्या आप 0 या अधिक वर्णों से मेल खाने के लिए '' प्रतीक का उपयोग करना चाहते हैं या आप '?' का उपयोग करने की योजना बना रहे हैं प्रतीक भी। यदि यह केवल '' है, तो आपको ए,, बी, बी * सी, आदि प्रकार पैटर्न देखने की आवश्यकता है? यदि आपकी आवश्यकता सीमित है, तो आप आसानी से सी ++ रनटाइम लाइब्रेरी के स्ट्रस्ट्र फ़ंक्शन से दूर हो सकते हैं।
सबसे आसान काम सिर्फ एक regex के लिए अपने ग्लोब पैटर्न कन्वर्ट करने के लिए, निम्नलिखित नियमों का होगा:
*
.*
?
हो जाता है.
\|.^$+()[]{}
का कोई भी उन्हें पूर्ववर्ती सहायता से निकले रहे हो जाता है\
यह आंशिक रूप से सच है।
के बाद नियम XP + कमांड प्रॉम्प्ट में DIR व्यवहार से शामिल किया जाता है:
*
*.*
रूप में ही है और regex .+
?
regex .?
हो जाता है जब तक कि एक गैर वाइल्डकार्ड
?
एक वाइल्डकार्ड के बाद नहीं द्वारा पीछा regex हो जाता हो जाता है .
*.
"विस्तार के बिना" का अर्थ है, और [^.]+$
है PathMatchSpec हो जाता है - लेकिन हैंडलिंग फ़ाइलों के लिए विशिष्ट है, इसलिए यदि आप सामान्य वाइल्डकार्ड मिलान की आवश्यकता हो तो परिणाम आप अपेक्षा नहीं कर सकते हैं।
अन्यथा, आपको संभवतः रेवेक्स के साथ जाना चाहिए, जैसा कि पावेल विस्तृत है।
[संपादित करें] मैं गलत तरीके सेPathMatchSpec
शेयरों FindFirstFile/FindNextFile के गुणों ग्रहण । मैंने कुछ परीक्षण चलाए हैं - ऐसा नहीं है। तो यह सबसे अच्छा उम्मीदवार की तरह दिखता है।
एक बहुत ही रोचक खोज। मुझे आश्चर्य है कि यह चीज़ पथ के लिए कैसे विशिष्ट है, हालांकि (यदि यह वास्तव में है)। –
पावेल, मैंने चेक किया - विशेष हैंडलिंग केवल FindFirst/NextFile में है। वाह! : डी – peterchen
विशेष हैंडलिंग क्या है? मुझे नहीं लगता कि यह वही क्यों नहीं होगा? आपका मतलब है कि यह केवल फाइलफ़ास्ट/नेक्स्टफाइल में फ़ाइल नाम भाग पर लागू होता है? – paulm
अजीब है कि इतने सारे साल बीत गए और कोई भी आप इस जवाब दिया सहित, :
एक WIN32 एपीआई है जो वास्तव में आप जो खोज रहे हैं वह करता है। (मैंने इसे "वाइल्डकार्ड" के लिए एमएसडीएन में खोजा पाया)
इसका नाम SymMatchString()
है। यह DbgHelp.dll में बैठता है जो ऑपरेटिंग सिस्टम का हिस्सा है।
यदि आपका ऐप मल्टीथ्रेड किया गया है तो एपीआई कॉल के चारों ओर एक क्रिटिकलसेक्शन डालें!
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681355%28v=vs.85%29.aspx
एपीआई कि FindFirstFile()
वाइल्डकार्ड के लिए आंतरिक रूप से चलने वाले मैच शायद FsRtlIsNameInExpression()
है।
Elmü
डीबीजीहेल्प ऑपरेटिंग सिस्टम का हिस्सा हो सकता है। दुर्भाग्यवश, एमएस ने यह कहने के लिए कहा है: "हालांकि यह डीएलएल विंडोज के सभी समर्थित संस्करणों में शामिल है, लेकिन यह शायद ही कभी डीबीएचहेल्प उपलब्ध का सबसे वर्तमान संस्करण है। इसके अलावा, विंडोज़ में जहाजों के डीबीजीहेल्प के संस्करण ने अन्य रिलीज से कार्यक्षमता कम कर दी है - विशेष रूप से, इसमें सिंबल सर्वर और स्रोत सर्वर के लिए समर्थन की कमी है। "व्यक्तिगत रूप से, मैं इस तरह के परिस्थितियों में इस एपीआई का उपयोग करके समाधान को तैनात करने में विशेष रूप से आरामदायक महसूस नहीं करता। –
सिंबलसेवर या सोर्ससेवर पर कितने एप्लिकेशन चलाना है? यदि आप वास्तव में इस बारे में चिंता करते हैं कि आप अपने प्रोग्राम के फ़ोल्डर में DbgHelp.dll का एक ज्ञात संस्करण स्थापित कर सकते हैं और यह ओएस के डीएलएल के बजाय लोड किया जाएगा। – Elmue
- 1. Win32 एपीआई
- 2. Win32 एपीआई
- 3. Win32 एपीआई
- 4. डीएनएल निर्यात कार्यों को गणना करने के लिए Win32 एपीआई?
- 5. स्क्रीनशॉट प्राप्त करने के लिए कोई Win32 एपीआई?
- 6. सी # एकाधिक स्ट्रिंग मैच
- 7. वाइल्डकार्ड मिलान स्ट्रिंग
- 8. पायथन स्ट्रिंग मैच
- 9. एक वाणिज्यिक अनुप्रयोग के लिए Win32 एपीआई को हुक करने के लिए अनुशंसित तरीका क्या है?
- 10. सी ++ Win32 एपीआई ऑफ़लाइन दस्तावेज?
- 11. WIN32 एपीआई के साथ ग्लोबल हॉटकी?
- 12. पायथन/रेगेक्स - मैच #, #। स्ट्रिंग में
- 13. स्काला मामले मैच आंशिक स्ट्रिंग
- 14. तरह का प्रयोग सटीक स्ट्रिंग मैच के लिए बनाम =
- 15. बूस्ट रेगेक्स सब-स्ट्रिंग मैच
- 16. क्या Win32 से Win32 को कॉल करने के लिए कोई और दर्द रहित तरीका है?
- 17. वाइल्डकार्ड
- 18. वाइल्डकार्ड
- 19. वाइल्डकार्ड
- 20. WIN32
- 21. Win32
- 22. रेगेक्स वाइल्डकार्ड
- 23. एक डॉस वाइल्डकार्ड
- 24. रेगेक्स मैच के लिए परीक्षण कैसे करें
- 25. विंडोज 7 रिबन यूआई Win32 एपीआई कोड
- 26. पीएचपी मैच एक स्ट्रिंग वास्तव में
- 27. मिलान स्ट्रिंग में रेगेक्स इंडेक्स जहां मैच
- 28. Win32 एपीआई और .NET ढांचे के बीच विकल्प
- 29. जावास्क्रिप्ट - स्ट्रिंग मैच में उपयोग चर
- 30. वाइल्डकार्ड एक या शून्य अक्षरों से मिलान करने के लिए
"वाइल्डकार्ड स्ट्रिंग मैच" से आपका क्या मतलब है? कृपया उदाहरण दें। –
उदाहरण या (अधिमानतः) एक विशिष्टता। यदि आप विंडोज पर वाइल्डकार्ड फाइल करने के लिए समान नियमों का मतलब रखते हैं, लेकिन स्पष्ट रूप से ऐसा नहीं कहें, तो आम तौर पर नील बेहतर आवश्यकताओं के लिए दबाएगा ;-) इसके अलावा, यह मेरे लिए होता है कि फ़ाइल ग्लब्स में '*' और '?' बैकस्लैश चरित्र से मेल नहीं खाता - यह जवाब को प्रभावित कर सकता है कि आप इस व्यवहार को चाहते हैं या नहीं। –