आप शायद एक पत्र माना जाता है, और यह आपके लोकेल पर निर्भर करता है। आईएसओ लैटिन -1 का उपयोग करने से उच्चारण किए गए पश्चिमी भाषा के अक्षरों को अक्षरों के रूप में मिलान करने की अनुमति मिल जाएगी। निम्नलिखित कार्यक्रम में, डिफ़ॉल्ट स्थान é को नहीं पहचानता है, और इस तरह क्री मिलान करने के लिए विफल रहता है। लोकेल सेटिंग कोड को असम्बद्ध करें, और उसके बाद यह मिलान करना शुरू हो जाता है।
भी ध्यान रखें कि \ w अंक और सभी पत्र के साथ-साथ अंडरस्कोर वर्ण भी शामिल है। केवल अक्षरों को पाने के लिए, आपको गैर-अल्फानम, अंक और अंडरस्कोर वर्णों का पूरक लेने की आवश्यकता है। यह केवल पत्र छोड़ देता है।
कि समझना आसान सवाल "क्या नियमित अभिव्यक्ति 3 को छोड़कर किसी भी अंकों से मेल खाता है?" के रूप में यह तैयार करने से हो सकता है, और जवाब है/[^ \ डी 3] /।
#! /usr/local/bin/perl
use strict;
use warnings;
# uncomment the following three lines:
# use locale;
# use POSIX;
# setlocale(LC_CTYPE, 'fr_FR.ISO8859-1');
while (<DATA>) {
chomp;
if (/([^\W_0-9])\1+/) {
print "$_: dup [$1]\n";
}
else {
print "$_: nope\n";
}
}
__DATA__
100
food
créé
a::b
केवल अक्षरों के लिए [ए-जेए-जेड] के लिए \ w स्वैप आउट करें। – TomC
@TomC: यह यूनिकोड सुरक्षित नहीं है! –
अब मैं केवल एक के लिए दोगुनी अक्षरों को प्रतिस्थापित कर सकता हूं: Regex.Replace (str, @ "(\ w) \ 1+", "$ 1"); धन्यवाद एडम। –