উত্তর:
[^a-zA-Z0-9 -]
একটি খালি স্ট্রিং দিয়ে প্রতিস্থাপন করুন ।
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");
replaceAll
পরিবর্তে কোনও ফাংশন সন্ধান করুন replace
।
return Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled);
একই বেসিক প্রশ্ন
""
এবং string.Empty
ঠিক একই। stackoverflow.com/questions/151472/…
আমি RegEx ব্যবহার করতে পারতাম, তারা মার্জিত সমাধান সরবরাহ করতে পারে তবে তারা পারফর্ম্যান সমস্যা তৈরি করতে পারে। এখানে একটি সমাধান
char[] arr = str.ToCharArray();
arr = Array.FindAll<char>(arr, (c => (char.IsLetterOrDigit(c)
|| char.IsWhiteSpace(c)
|| c == '-')));
str = new string(arr);
কমপ্যাক্ট ফ্রেমওয়ার্ক ব্যবহার করার সময় (যার ফাইন্ডএল নেই)
ফাইন্ডএলকে 1 দিয়ে প্রতিস্থাপন করুন
char[] arr = str.Where(c => (char.IsLetterOrDigit(c) ||
char.IsWhiteSpace(c) ||
c == '-')).ToArray();
str = new string(arr);
char[] arr = str.Where(c => (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-')).ToArray();
আপনি চেষ্টা করতে পারেন:
string s1 = Regex.Replace(s, "[^A-Za-z0-9 -]", "");
কোথায় s
আপনার স্ট্রিং।
System.Linq ব্যবহার করা হচ্ছে
string withOutSpecialCharacters = new string(stringWithSpecialCharacters.Where(c =>char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-').ToArray());
রেজেক্সটি হ'ল [^\w\s\-]*
:
\s
স্পেস ( ) এর পরিবর্তে ব্যবহার করা ভাল , কারণ পাঠ্যে কোনও ট্যাব থাকতে পারে।
এই প্রশ্নের উত্তরের ভিত্তিতে, আমি একটি স্থির শ্রেণি তৈরি করেছি এবং এগুলি যুক্ত করেছি। ভেবেছি এটি কিছু লোকের পক্ষে কার্যকর হতে পারে।
public static class RegexConvert
{
public static string ToAlphaNumericOnly(this string input)
{
Regex rgx = new Regex("[^a-zA-Z0-9]");
return rgx.Replace(input, "");
}
public static string ToAlphaOnly(this string input)
{
Regex rgx = new Regex("[^a-zA-Z]");
return rgx.Replace(input, "");
}
public static string ToNumericOnly(this string input)
{
Regex rgx = new Regex("[^0-9]");
return rgx.Replace(input, "");
}
}
তারপরে পদ্ধতিগুলি হিসাবে ব্যবহার করা যেতে পারে:
string example = "asdf1234!@#$";
string alphanumeric = example.ToAlphaNumericOnly();
string alpha = example.ToAlphaOnly();
string numeric = example.ToNumericOnly();
দ্রুত কিছু চান?
public static class StringExtensions
{
public static string ToAlphaNumeric(this string self, params char[] allowedCharacters)
{
return new string(Array.FindAll(self.ToCharArray(), c => char.IsLetterOrDigit(c) || allowedCharacters.Contains(c)));
}
}
এটি আপনাকে কোন অক্ষরগুলির পাশাপাশি অনুমতি দিতে চান তা নির্দিষ্ট করার অনুমতি দেবে।
এখানে একটি নন-রেজেক্স হিপ বরাদ্দ বন্ধুত্বপূর্ণ দ্রুত সমাধান যা আমি যা খুঁজছিলাম।
অনিরাপদ সংস্করণ।
public static unsafe void ToAlphaNumeric(ref string input)
{
fixed (char* p = input)
{
int offset = 0;
for (int i = 0; i < input.Length; i++)
{
if (char.IsLetterOrDigit(p[i]))
{
p[offset] = input[i];
offset++;
}
}
((int*)p)[-1] = offset; // Changes the length of the string
p[offset] = '\0';
}
}
এবং যারা অনিরাপদ ব্যবহার করতে চান না বা স্ট্রিং দৈর্ঘ্যের হ্যাককে বিশ্বাস করেন না তাদের জন্য।
public static string ToAlphaNumeric(string input)
{
int j = 0;
char[] newCharArr = new char[input.Length];
for (int i = 0; i < input.Length; i++)
{
if (char.IsLetterOrDigit(input[i]))
{
newCharArr[j] = input[i];
j++;
}
}
Array.Resize(ref newCharArr, j);
return new string(newCharArr);
}
অনুপ্রেরণা হিসাবে @ata উত্তর ব্যবহার করে এখানে একটি এক্সটেনশন পদ্ধতি রয়েছে ।
"hello-world123, 456".MakeAlphaNumeric(new char[]{'-'});// yields "hello-world123456"
বা যদি আপনার হাইফেন ব্যতীত অতিরিক্ত অক্ষর প্রয়োজন হয় ...
"hello-world123, 456!?".MakeAlphaNumeric(new char[]{'-','!'});// yields "hello-world123456!"
public static class StringExtensions
{
public static string MakeAlphaNumeric(this string input, params char[] exceptions)
{
var charArray = input.ToCharArray();
var alphaNumeric = Array.FindAll<char>(charArray, (c => char.IsLetterOrDigit(c)|| exceptions?.Contains(c) == true));
return new string(alphaNumeric);
}
}
আমি এখানে উত্তরের একটি বৈচিত্র ব্যবহার করি use আমি স্পেসগুলি "-" দিয়ে প্রতিস্থাপন করতে চাই যাতে এর এসইও বন্ধুত্বপূর্ণ হয় এবং ছোট হাতের অক্ষরও তৈরি হয়। এছাড়াও আমার পরিষেবা স্তর থেকে system.web রেফারেন্স নয়।
private string MakeUrlString(string input)
{
var array = input.ToCharArray();
array = Array.FindAll<char>(array, c => char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-');
var newString = new string(array).Replace(" ", "-").ToLower();
return newString;
}
এখানে একটি খুব সংক্ষিপ্ত সংস্করণ
myString = myString.replace(/[^A-Za-z0-9 -]/g, "");
রেইগেক্সের সাথে অনেক সহজ উপায় রয়েছে।
private string FixString(string str)
{
return string.IsNullOrEmpty(str) ? str : Regex.Replace(str, "[\\D]", "");
}
-
উচিত চরিত্র শ্রেণীর শেষে হওয়া উচিত, বা ব্যাঙ্ক স্ল্যাশ সহ পালাতে হবে, ব্যাপ্তির জন্য ব্যবহার না করা prevent