मैं यह जानना चाहता हूं कि स्ट्रिंग में कोई विशेष वर्ण शामिल है जैसे!, @, #, $,%, ^, &, *, (,) .... आदि।कैसे पता चलता है कि स्ट्रिंग में कोई विशेष वर्ण है या नहीं?
स्ट्रिंग में सभी वर्णों को लूपिंग किए बिना मैं ऐसा कैसे कर सकता हूं?
मैं यह जानना चाहता हूं कि स्ट्रिंग में कोई विशेष वर्ण शामिल है जैसे!, @, #, $,%, ^, &, *, (,) .... आदि।कैसे पता चलता है कि स्ट्रिंग में कोई विशेष वर्ण है या नहीं?
स्ट्रिंग में सभी वर्णों को लूपिंग किए बिना मैं ऐसा कैसे कर सकता हूं?
Regex RgxUrl = new Regex("[^a-z0-9]");
blnContainsSpecialCharacters = RgxUrl.IsMatch(stringToCheck);
उपयोग String.IndexOfAny
:
private static readonly char[] SpecialChars = "[email protected]#$%^&*()".ToCharArray();
...
int indexOf = text.IndexOfAny(SpecialChars);
if (indexOf == -1)
{
// No special chars
}
पाठ्यक्रम पाश आंतरिक मिलेगी कि के
- लेकिन कम से कम आप अपने कोड में यह करने के लिए नहीं है।
अरे जॉन, आप मार्क के खरीदारों को कैसे लागू करेंगे? – Manish
@ मिशेल: यह देखते हुए कि आपके पास श्वेतसूची के लिए पात्रों की एक विस्तृत श्रृंखला होने की संभावना है, एक रेगेक्स शायद जाने का तरीका है। –
। इसका कारण यह है कि बहुत सारे पात्र हैं जिन्हें "विशेष पात्र" माना जा सकता है और यदि आप उन्हें सूचीबद्ध करने का प्रयास करते हैं तो आप सभी को याद करने के लिए बाध्य हैं।
तो जो कुछ आपने पूछा है उसे करने के बजाय यह जांचना बेहतर होगा कि आपकी स्ट्रिंग regex @"^\w+$"
, या जो भी आपको चाहिए, से मेल खाती है।
अच्छा विचार ... !! – Manish
@ बबलवाप: मैंने श्वेतसूची के साथ एक रेगेक्स का उपयोग करने का सुझाव दिया। क्या यह सवाल का वैध जवाब नहीं है? ब्लैक लिस्ट विधि के साथ समस्या वह बिट है जहां वह 'आदि ...' लिखता है। कंप्यूटर अनुमान लगा सकते हैं कि आपका क्या मतलब है, और सभी विशेष पात्रों की एक सूची लिखना आईएमएचओ इस समस्या से निपटने का गलत तरीका है। –
आईएमओ यह नहीं है। प्रश्न के पीछे प्रेरणा को जानने के बिना, आप वास्तव में यह नहीं कह सकते कि श्वेतसूची का उपयोग इंडेक्सऑफनी का उपयोग करने के लिए एक बेहतर (या यहां तक कि वैध) विकल्प है। और सवाल यह था कि, जैसा कि मैंने इसे पढ़ा, विशेष रूप से ब्लैकलिस्ट के बारे में। – Bubblewrap
पीएचपी का उपयोग करना, तुम कोशिश कर सकते हैं:
if (preg_match("[^A-Za-z0-9]", $yourString) {
//DO WHATEVER
}
यह सच वापस आ जाएगी स्ट्रिंग एक अक्षर या संख्या के अलावा और कुछ है या नहीं।
उम्मीद है कि इससे मदद मिलती है।
प्रश्न सी # को टैग किया गया है। –
सी # में नहीं, लेकिन फिर भी मुझे आवश्यक रेगेक्स दिया। :) – Manish
@ मिशेल: ठीक है, यह * ए * रेगेक्स है - लेकिन कोई भी जो वास्तव में प्रश्न से मेल खाता है। यदि आप कहेंगे "मैं केवल अल्फान्यूमेरिक वर्णों को शामिल करना चाहता हूं, और कोई उच्चारण नहीं आदि" तो यह एक अलग मामला होता। –
भी ...
foreach (char character in "some*[email protected]#@!#string")
{
if(!Char.IsLetterOrDigit(character))
{
//It is a special character.
}
}
-1, विशेष रूप से लूप का उपयोग किए बिना सवाल में कहा ... – Manish
public static bool HasSpecialCharacters(string str)
{
string specialCharacters = @"%[email protected]#$%^&*()?/>.<,:;'\|}]{[_~`+=-" +"\"";
char[] specialCharactersArray = specialCharacters.ToCharArray();
int index = str.IndexOfAny(specialCharactersArray);
//index == -1 no special characters
if (index == -1)
return false;
else
return true;
}
मैं एक अलग परिणाम हासिल करने के लिए कोशिश कर रहा था। एक विधि बनाने के लिए जो एक निर्धारित स्ट्रिंग को अलग करने के लिए उपयोग किए जाने वाले विशेष वर्ण को लौटाता है, फिर उसी स्ट्रिंग को विभाजित करने के लिए इसका उपयोग करने के लिए 1 # 4 # 5 कहें। चूंकि मैं जिस सिस्टेम को बनाए रख रहा हूं, वह कई अलग-अलग लोगों द्वारा बनाया गया है, और कुछ मामलों में, मुझे नहीं पता कि पैटर्न कौन सा है (आमतौर पर कोई नहीं है), निम्नलिखित ने मुझे बहुत मदद की। और मैं अभी तक मतदान नहीं कर सकता।
public String Separator(){
**String specialCharacters = "%[email protected]#$#^&*()?/>.<:;\\|}]{[_~`+=-" +"\"";**
char[] specialCharactersArray = specialCharacters.toCharArray();
char[] a = entrada.toCharArray();
for(int i = 0; i<a.length; i++){
for(int y=0; y < specialCharactersArray.length; i++){
if(a[i] == specialCharactersArray[y]){
separator = String.valueOf(specialCharactersArray[y]);
}
}
}
return separator;
}
धन्यवाद दोस्तों।
//apart from regex we can also use this
string input = Console.ReadLine();
char[] a = input.ToCharArray();
char[] b = new char[a.Length];
int count = 0;
for (int i = 0; i < a.Length; i++)
{
if (!Char.IsLetterOrDigit(a[i]))
{
b[count] = a[i];
count++;
}
}
Array.Resize(ref b, count);
foreach(var items in b)
{
Console.WriteLine(items);
}
Console.ReadLine();
//it will display the special characters in the string input
यहाँ LINQ
private bool ContainsSpecialChars(string value)
{
var list = new[] {"~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "+", "=", "\""};
return list.Any(value.Contains);
}
LINQ का उपयोग विशेष वर्ण के लिए जाँच करने के लिए एक छोटी समाधान है नई काला है।
string.Any(c => char.IsSymbol(c));
IsSymbol() के लिए, वैध प्रतीकों UnicodeCategory के सदस्य हैं।इस तरह के सबस्क्रिप्ट और सुपरस्क्रिप्ट के रूप में
संपादित करें:
यह सभी पात्रों को पकड़ने नहीं है। यह पूरक हो सकता है:
string.Any(c => !char.IsLetterOrDigit(c));
क्या आपने ए-जेड को याद किया .. – Manish
यह 'à' स्वीकार करेगा, क्या यह ओपी के लिए एक विशेष चरित्र है? (बेशक यह नहीं है, ओपी पहले से ही जवाब स्वीकार कर लिया है) –