এইচ এ সময় জন্য egrep: MM: এসএস বিন্যাস


0

ফাইলটি কাজ করে এইচ-এমএম: এসএস ফরম্যাটে টাইম স্ট্যাম্পের সাথে লাইনটি grep করার প্রয়োজন। আমি নিম্নলিখিত egrep চেষ্টা করেছি [0-9]: [0-9]: [0-9] '। আমার জন্য কাজ না। আমি কি রেগেক্সে ভুল করছি?


আপনি কি এটিতে চলমান ফাইলটির নমুনা সরবরাহ করতে পারেন, আপনি কী আশা করেন এবং এর পরিবর্তে আপনি কী পাচ্ছেন? আমরা তথ্য দেখতে এবং আপনার প্রত্যাশা বুঝতে পারে যদি একটি regex নির্ণয়ের অনেক সহজ।
MaQleod

উত্তর:


3

আপনি যদি ম্যাচ করতে চান
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"
glenn jackman

আসলে [0-1] [0-2] 00 থেকে 12 এর সাথে মিলবে, [0-1] 0 বা 1 উভয়ের জন্য মিলবে না এবং [0-2] 0 বা 2 উভয়ের জন্য মিলবে না [ 0-1] [0-2] মিলবে [0-1] - & gt; 0 [0-2] - & gt; 0 = 00:00:00 বা [0-1] - & gt; 1 [0-2] - & gt; 2 = 12:00:00
Sirius_Black

আচ্ছা, যে রেজেক্স মিল কি 03:00:00 am?
glenn jackman

@glennjackman দুঃখিত, আমি বুঝলাম, সেই ভুল, লক্ষ্য করার জন্য ধন্যবাদ
Sirius_Black

0

[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 অর্থ আছে)। অতএব: আপনার উত্তর সঠিক নয়।
erik

আমার খারাপ! আপনি সঠিক স্যার। এখন সম্পাদন করা হচ্ছে ... একবার ও একবার একবার পুনরাবৃত্তি করার কোন পুনরাবৃত্তি চিহ্ন নেই? (আমি এক খুঁজে পাচ্ছি না, তাই আমি ভাল উপায় চিন্তা করছি [0-9]:[0-9][0-9]:[0-9][0-9]
Azz

আমি কোন পুনরাবৃত্তি চিহ্ন জানি না (এই ভিম নয়)। আমি ব্যবহার করি {NUMBER} একটি নির্দিষ্ট অনুরোধ NUMBER পুনরাবৃত্তি, আমার উত্তর দেখুন।
erik

0

আমি আপনাকে ব্যবহার সুপারিশ

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 মত অযৌক্তিক সময়ের জন্য মিলবে - যা তবে সময়কাল হতে পারে।

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