كيفية استبدال الأحرف الخاصة باستخدام التعبيرات العادية؟

StackOverflow https://stackoverflow.com/questions/1673408

  •  16-09-2019
  •  | 
  •  

سؤال

كيفية استبدال الأحرف الخاصة باستخدام التعبيرات العادية؟ من خلال خاص، ما أعنيه هو تلك الأحرف الرمزية التي تظهر في بعض الأحيان في النص.

على سبيل المثال، في النص أدناه، أريد إزالة الفقاعة التي هي في بداية كل سطر.

تفاصيل جواز السفر

Name as on passport
Relationship
Passport Number
Date of Issue
Expiry Date
Place of Issue

تم تحرير السؤال: عذرا، فقاعة في بداية الخط ليست أكثر وضوحا. بعد تقديم السؤال، إزالة stackoverflow تلك الشخصية الخاصة.

أي شخص يعرف كيفية استبدال تلك الشخصيات الخاصة؟ أنا لا أريد استبدال الأحرف مثل #، @ أو!. هذه تافهة ويمكن كتابتها مع لوحة المفاتيح.

آسف، أنا لا أعرف كيفية وضع تلك الشخصيات الخاصة في سؤالي، سأحاول شرح. في ملف Word، وضعنا الرصاص قبل النص. أريد أن استبدال الشخصيات روبيتها مثل هذه الشخصيات. لدي بعض الملفات النصية التي تحتوي على أحرف تبدو وكأنها فقاعة.

أخيرا، اكتشفت الحل. هذا التعبير العادي يعمل بالنسبة لي

([^ (A-ZA-Z0-9) + | r | n | t | '| | | # |؛ |: | / | |، |

هل كانت مفيدة؟

المحلول

ليس لدي ما يكفي من الوقت لحساب مثال كامل. ولكن نظرا لأنك تستخدم .NET يمكنك التطابق على أي عدد من فئات الأحرف هذه:

http://msdn.microsoft.com/en-us/library/20bw873z.aspx.

اختر ما تريد قبوله واستبدال أي شيء لا يساوي تلك المجموعة.

نصائح أخرى

(تم نشر هذا قبل تحديد اللغة.)

لاستبدال الأحرف غير ASCII مع مساحة في بيرل،

 $string =~ s/[^[:ascii:]]/ /g;

يرى http://codepad.org/ktmvqioz. وبعد هنا [^[:ascii:]] هو Regex الذي يطابق أي حرف غير ASCII.

سيكون من الممكن العثور على جميع الأحرف "الخاصة" مع هذا التعبير العادي ثم استبدالها بحرف الفضاء

/[<special_characters_here>]/

ومع ذلك، عادة ما يكون من الأفضل استخدام الواجهة البيضاء، وبالتالي ذكر جميع الأحرف المسموح بها واستبدال كل شيء ليس به حرف مسافة:

/[^<allowed_characters_here>]/

هل تقصد استبدال عودة النقل والأحرف السطرية الجديدة؟

إذا كان هذا ما أنت بعد ذلك، فسيفعل ذلك:

var source = "once\r\ntwice\r\nthrice";
var pattern = new Regex(@"\r\n");
var result = pattern.Replace(source, ",");
Assert.AreEqual("once,twice,thrice", result);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top