मुझे एक रेगेक्स चाहिए जो इनपुट में केवल ए-जेड, ए-जेड, 0-9, _ वर्ण, और डॉट (।) की अनुमति देगा। मैंने कोशिश की:रेगेक्स मैच ए-जेड, ए-जेड, 0-9, _ और
[A-Za-z0-9_.]
लेकिन यह काम नहीं किया। मेरे द्वारा यह कैसे किया जा सकता है?
मुझे एक रेगेक्स चाहिए जो इनपुट में केवल ए-जेड, ए-जेड, 0-9, _ वर्ण, और डॉट (।) की अनुमति देगा। मैंने कोशिश की:रेगेक्स मैच ए-जेड, ए-जेड, 0-9, _ और
[A-Za-z0-9_.]
लेकिन यह काम नहीं किया। मेरे द्वारा यह कैसे किया जा सकता है?
^[A-Za-z0-9_.]+$
स्ट्रिंग के अंत तक शुरुआत से, इन वर्णों में से एक या अधिक से मेल खाते हैं।
संपादित करें:
ध्यान दें कि ^
और $
मैच शुरुआत और एक लाइन के अंत। जब मल्टीलाइन सक्षम होता है, तो इसका मतलब यह हो सकता है कि एक पंक्ति मेल खाती है, लेकिन पूर्ण स्ट्रिंग नहीं।
स्ट्रिंग की शुरुआत के लिए \A
और \z
अंत के लिए उपयोग करें।
उदाहरण के लिए देखें: http://msdn.microsoft.com/en-us/library/h5181w5w(v=vs.110).aspx
भी^^ [\ w।] + $ 'हो सकता है, सोचा कि हर जगह काम नहीं करता है। – Kobi
@ कोबी: यह लगभग हर जगह काम करता है, बस अलग है :) – SilentGhost
आप क्या दे दिया है से कार्य करना मैं मान लेंगे आप की जाँच करने के कि किसी जिन्हें आप सूचीबद्ध किया है के अलावा अन्य किसी भी पत्र दर्ज नहीं किए चाहते हैं।
[^A-Za-z0-9_.]
और का उपयोग करें कि अपने कोड में एक मैच में, की तरह कुछ:
if (/[^A-Za-z0-9_.]/.match(your_input_string)) {
alert("you have entered invalid data");
}
Hows कि है कि आप सूचीबद्ध के अलावा अन्य कोई भी वर्ण के लिए खोज करना चाहते हैं काम करने के लिए?
शायद, आपको और अधिक सटीक रूप से निर्दिष्ट करने की आवश्यकता है कि क्या काम नहीं किया और आप किस पर्यावरण में हैं।
दावा के अनुसार कि डॉट एक charackter वर्ग में विशेष है, यह हर प्रोग्रामिंग वातावरण में सच नहीं है। उदाहरण के लिए पर्ल स्क्रिप्ट निम्नलिखित
use warnings;
use strict;
my $str = '!!!.###';
$str =~ s/[A-Za-z_.]/X/g;
print "$str\n";
!!!X###
पैदा करता है इस एक है, इसकी एक सा अस्पष्ट पर थोड़ा और अधिक जानकारी के साथ क्या किया जा सका। कुछ नमूना इनपुट अच्छा होगा और जिस संदर्भ का आप इसका उपयोग कर रहे हैं, भाषा भी? –