রেজেক্সে "\ d" এর অর্থ কী কোনও অঙ্ক?


147

আমি দেখেছি যে এ 123, \dম্যাচ 1এবং 3কিন্তু 2। আমি ভাবছিলাম \dকোন সংখ্যার সাথে সন্তুষ্টির সাথে কিসের প্রয়োজনীয়তা পূরণ হয়? আমি পাইথন স্টাইলের রেজেক্সের কথা বলছি।

গেডিতে নিয়মিত এক্সপ্রেশন প্লাগইন পাইথন স্টাইলের রেজেক্স ব্যবহার করছে। আমি এর লিখিত সামগ্রী থাকাতে একটি পাঠ্য ফাইল তৈরি করেছি

123

শুধুমাত্র 1এবং 3রেজেক্সের সাথে মিলেছে \d; 2এটি না.

সাধারণত এর মধ্যে অন্যান্য অক্ষর ছাড়াই ডিজিটের সংখ্যার ক্রমের জন্য কেবল বিজোড় ক্রমের অঙ্কগুলি ম্যাচ হয় এবং এমনকি অর্ডার সংখ্যাও হয় না। উদাহরণস্বরূপ 12345, ম্যাচগুলি হ'ল 1, 3এবং 5


4
\dমিলবে 1, 2এবং 3। যদি তা না হয় তবে আপনার প্রকাশের মধ্যে অবশ্যই অন্য কিছু থাকতে হবে। আপনি কি আপনার সম্পূর্ণ অভিব্যক্তি প্রদর্শন করতে পারেন?
অ্যালেক্স আজা

4
\dসংক্ষিপ্তকরণের জন্য [0-9], সুতরাং এটি মিলানো উচিত 2। দয়া করে একটি সম্পূর্ণ পরীক্ষার কেস পোস্ট করুন (একটি স্ক্রিপ্ট যা চালানো যেতে পারে যা আপনার সমস্যাটি দেখায়) এবং সম্ভবত আমরা কী ভুল তা খুঁজে বের করতে পারি।
zwol

@ ডেলানান: "আমি খুঁজে পেয়েছি যে 123, \ d 1 এবং 3 এর সাথে মেলে তবে 2" আমার কাছে বেশ কংক্রিট মনে হয়েছে।
অ্যাম্বার

অ্যাম্বার: আমাকে খারাপ লাগছে, আমি মিস করিনি!

5
ঠিক আছে, আমি একটি উত্তর কারণ আমি না যেমন এই পোস্ট করার করছি না জানি , কিন্তু আমি মনে করি কি উপর gedit- র দ্বারা পূর্ববর্তী ম্যাচ শেষে পরে অবিলম্বে একটি নতুন খেলা শুরু করতে রাজি যাচ্ছে - এটা একটি অক্ষর অগ্রাহ্য, যাই হোক না কেন আবার মিলার চেষ্টা করার আগে। মিলানোর চেষ্টা করুন 11111এবং 22222
zwol

উত্তর:


459

[0-9] সবসময় সমতুল্য নয় থেকে \d। পাইথন 3-তে [0-9]কেবলমাত্র 0123456789অক্ষরগুলির সাথে \dমেলে , তবে ম্যাচগুলি [0-9]এবং অন্যান্য অঙ্কের অক্ষর যেমন উদাহরণস্বরূপ পূর্ব আরবি সংখ্যাগুলি ٠١٢٣٤٥٦٧٨٩


3
REPL এ চেষ্টা করে: import re, re.match(r'\d', '٠١٢٣٤٥٦٧٨٩')কোনও মিল নেই
নিক 12

1
@ নিকফ অজগর 3 এ চেষ্টা করুন।
উইম

2
ফারসি ও আরবি ভাষার জন্য জাভা এবং জাভাস্ক্রিপ্ট ইঞ্জিনগুলিতে \ p {Nd use ব্যবহার করুন
আলিরেজা ফাত্তাহী

6
+1 টি, কিন্তু MMMM ... ওপি এর ট্যাগ হয় Pythonএবং \dকোন ইউনিকোড শুধুমাত্র Python3 ডিজিটের সাথে মেলে। পাইথন ২.7-এ এটি এখনও পুরানো এএসসিআইআই [0-9]- উত্তরে এটি স্পষ্ট করে বলা মূল্যবান হতে পারে। :)
zx81

1
@FarazAhmad, সম্ভবত না, আপনি আলাদাভাবে সমস্ত অক্ষর নির্দিষ্ট করতে হবে
কিরিল Polishchuk


8

পাইথন-স্টাইলের রেজেক্সে, \dকোনও পৃথক অঙ্কের সাথে মেলে। আপনি যদি এমন কোনও কিছু দেখছেন যা দেখে মনে হচ্ছে না, দয়া করে কেবলমাত্র একটি নির্দিষ্ট প্রতীক বর্ণনার বিপরীতে আপনি ব্যবহার করছেন পুরো রেজেক্স সরবরাহ করুন।

>>> import re
>>> re.match(r'\d', '3')
<_sre.SRE_Match object at 0x02155B80>
>>> re.match(r'\d', '2')
<_sre.SRE_Match object at 0x02155BB8>
>>> re.match(r'\d', '1')
<_sre.SRE_Match object at 0x02155B80>

ধন্যবাদ! আমার রেজেক্স পার্সার জিডিতে নিয়মিত এক্সপ্রেশন প্লাগইন। পুরো বিষয়বস্তু হয় 123
টিম

7

\\d{3} জাভাতে তিন অঙ্কের যে কোনও অনুক্রমের সাথে মেলে।


@ অমল-মুরালি, জাভাতে অঙ্কগুলির যে কোনও ক্রম মেলানোর জন্য এই অভিব্যক্তিটি কীভাবে ব্যবহার করবেন।
হাসান.আলখতিব

2
@ হাসানখতিব:\\d+
অমল মুরালি

5

এটি কেবলমাত্র অনুমান, তবে আমি মনে করি আপনার সম্পাদকটি প্রতিটি সংখ্যার সাথে মিলছে - 1 2 3- তবে পুরো 123স্ট্রিংটি ম্যাচ করলে এটির থেকে আলাদা করার জন্য কেবল বিজোড় ম্যাচগুলি হাইলাইট করা হয়।

বেশিরভাগ রেইগেক্স কনসোলগুলি বিভিন্ন রঙের সাথে সুসংগত মিলগুলি হাইলাইট করে তবে প্লাগইন সেটিংস, টার্মিনাল সীমাবদ্ধতার কারণে বা অন্য কোনও কারণে, কেবলমাত্র অন্য প্রতিটি গ্রুপই আপনার ক্ষেত্রে হাইলাইট হতে পারে।


1

নেট / সি # সম্পর্কিত তথ্য:

দশমিক অঙ্কের অক্ষর: any d \ d যে কোনও দশমিক অঙ্কের সাথে মেলে। এটি \ p {Nd} নিয়মিত এক্সপ্রেশন প্যাটার্নের সমতুল্য, এতে স্ট্যান্ডার্ড দশমিক সংখ্যা 0-9 পাশাপাশি অন্যান্য কয়েকটি অক্ষরের সেটগুলির দশমিক সংখ্যাও অন্তর্ভুক্ত।

ECMAScript- অনুবর্তী আচরণ নির্দিষ্ট করা থাকলে, \ d [0-9] এর সমতুল্য। ECMAScript নিয়মিত এক্সপ্রেশন সম্পর্কিত তথ্যের জন্য, নিয়মিত এক্সপ্রেশন বিকল্পগুলির "ECMAScript ম্যাচিং আচরণ" বিভাগটি দেখুন।

তথ্য: https://docs.microsoft.com/en-us/dotnet/standard/base-tyype/character-class-in-regular-expressionions#decimal-digit-character-d

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.