ফাইলটি কাজ করে এইচ-এমএম: এসএস ফরম্যাটে টাইম স্ট্যাম্পের সাথে লাইনটি grep করার প্রয়োজন। আমি নিম্নলিখিত egrep চেষ্টা করেছি [0-9]: [0-9]: [0-9] '। আমার জন্য কাজ না। আমি কি রেগেক্সে ভুল করছি?
ফাইলটি কাজ করে এইচ-এমএম: এসএস ফরম্যাটে টাইম স্ট্যাম্পের সাথে লাইনটি grep করার প্রয়োজন। আমি নিম্নলিখিত egrep চেষ্টা করেছি [0-9]: [0-9]: [0-9] '। আমার জন্য কাজ না। আমি কি রেগেক্সে ভুল করছি?
উত্তর:
আপনি যদি ম্যাচ করতে চান
00:00:00 থেকে 23:59:59 পর্যন্ত
egrep '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]'t
আপনি যদি ম্যাচ করতে চান
12:00 থেকে 12:59 পর্যন্ত
egrep -i '((?:0[0-9]|1[012]):[0-5][0-9]:[0-5][0-9]\s?(?:a|p)m)'
[0-1][0-2]
থেকে (0[0-9]|1[012])
যা প্রান্তের প্রান্তের ক্ষেত্রে & gt; "12:00:00"
[0-9]:[0-9]:[0-9]
এইচ ম্যাচ হবে: এম: এস, বোট না এইচ: এমএম: এসএস।
বর্গক্ষেত্র বন্ধনী প্রতিটি সেট একটি একক অক্ষর মেলে।
সুতরাং H যা মিলে যায় এমন কিছু পেতে: MM: SS আপনি ব্যবহার করতে পারেন:
[0-9]:[0-9][0-9]:[0-9][0-9]
উল্লেখ্য, উপরে এইচ মিলবে না: এম: এস
এইচ মিলানোর জন্য: MM: SS বা H: M: S OR H: M: SS বা H: MM: S নিম্নলিখিতগুলি ব্যবহার করুন
[0-9]:[0-9]+:[0-9]+
+
অর্থ শেষ চরিত্রের সাথে মেলে, 1 বা তার বেশি বার (প্রথম ম্যাচ সহ)
.
কোন অক্ষর মেলে। শেষ এক না। এটার মানে হচ্ছে [0-9].
ম্যাচ 5a
এবং 7-
এবং আরো 33
। এবং আপনি পালাতে হবে না :
(এটি কোন regex অর্থ আছে)। অতএব: আপনার উত্তর সঠিক নয়।
[0-9]:[0-9][0-9]:[0-9][0-9]
{NUMBER}
একটি নির্দিষ্ট অনুরোধ NUMBER
পুনরাবৃত্তি, আমার উত্তর দেখুন।
আমি আপনাকে ব্যবহার সুপারিশ
egrep '[0-9]{2}:[0-9]{2}:[0-9]{2}'
কোথায় {2}
অর্থ অন্তত দুই বার এবং সর্বাধিক দুইবার (= ঠিক দুই বার) মিলিত হয়, যেখানে এই উদাহরণের শেষ চরিত্র 0 এবং 9 এর মধ্যে একটি সংখ্যা ছিল।
আপনি যদি এটির জন্য অন্তত একটি এবং সর্বাধিক দুটি অনুসন্ধান করতে চান তবে আপনাকে এটিকে পরিবর্তন করতে হবে
egrep '[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}'
উদাহরণস্বরূপ যা মিল 0:1:22
এবং 0:11:22
এবং 00:11:22
এবং 00:11:2
এবং তাই।
উত্তর Sirius_Black দেওয়া হয়েছে বাস্তব সময়ে পরীক্ষার। আমার উত্তরটি 99:99:99 মত অযৌক্তিক সময়ের জন্য মিলবে - যা তবে সময়কাল হতে পারে।