String.prototype.isRepeated


41

আপডেট : আইসাকের পাইথ জমাটি বিজয়ী!


আপনারা অনেকেই শুনে থাকতে পারেন যে শহরে জাভাস্ক্রিপ্টের শীতল সংস্করণ রয়েছে (ES6 পড়ুন) যার একটি পদ্ধতি রয়েছে String.prototype.repeatযাতে আপনি করতে পারেন

"Hello, World!".repeat(3)

এবং পেতে

"Hello, World!Hello, World!Hello, World!"

আউটপুট হিসাবে।

আপনার কাজটি হ'ল আপনার পছন্দের ভাষায় একটি ফাংশন বা একটি প্রোগ্রাম লিখুন যা সনাক্ত করে যে কোনও স্ট্রিং এই ধরনের রূপান্তরটির আওতায় চলেছে কিনা।

অর্থাত্ ইনপুট স্ট্রিংকে nএকটি ছোট স্ট্রিংয়ের সঠিক সময়ের পুনরাবৃত্তি হিসাবে উপস্থাপন করা যেতে পারে । স্ট্রিংটি ছোট বা স্ট্রিংয়ের পুনরাবৃত্তি হিসাবে প্রতিনিধিত্ব করতে না পারলে স্ট্রিংটি মিথ্যা বা মিথ্যা হতে পারে তবে আউটপুট (ফাংশনটির রিটার্ন স্টেটমেন্ট বা STDOUT হিসাবে) সত্য হওয়া উচিত।

কিছু নমুনা ইনপুট:

"asdfasdfasdf"  // true
"asdfasdfa"     // false
"ĴĴĴĴĴĴĴĴĴ"     // true
"ĴĴĴ123ĴĴĴ123"  // true
"abcdefgh"      // false

নোট করুন যে শেষ ইনপুটটি মিথ্যা, সুতরাং এর nচেয়ে বড় হওয়া উচিত1

সম্পূর্ণ বিধি

  • কোনও স্ট্রিং ইনপুট (ফাংশন আর্গুমেন্ট / কমান্ড লাইন আরগস / এসটিডিআইএন) এর মাধ্যমে কোনও ভাষায় একটি ফাংশন / প্রোগ্রাম লিখুন
  • প্রদত্ত স্ট্রিংটি একটি ছোট স্ট্রিংয়ের সঠিক পুনরাবৃত্তির মাধ্যমে গঠিত হয়, কমপক্ষে দুবার পুনরাবৃত্তি করে Return
  • ইনপুট স্ট্রিংয়ের সর্বাধিক আকার আদর্শভাবে অনন্ত
  • স্ট্রিংয়ের সমস্ত সম্ভাব্য ASCII অক্ষর থাকতে পারে
  • এটি একটি তাই অক্ষরের মধ্যে ক্ষুদ্রতম কোড জিততে পারে।

"" - খালি স্ট্রিং - কী ফিরে আসবে? (এটিতে খালি স্ট্রিংয়ের অনন্ত সংখ্যক অনুলিপি রয়েছে))
বিলপ্পে

@ বিলপজি মিথ্যা মান
অপ্টিমাইজার

আপনি কি ভোট দিয়ে টাই-ব্রেকিং করছেন? প্রচলিত অনুশীলনটি আমার মনে হয় এর আগে জমা দেওয়া (ভাল, প্রথমটি যা বেঁধে দেওয়া স্কোরটিতে নেমে গেছে)। তবে আমি নিশ্চিত নই যে এটি যে কোনও জায়গায় ডিফল্ট টাই-ব্রেকার হিসাবে লেখা ছিল, তাই শেষ পর্যন্ত এটি আপনারই বিষয়।
মার্টিন ইন্ডার

তাদের পোস্টের মধ্যে সময়টি মাত্র 30 মিনিট। আমি এটা জয়ের জন্য যথেষ্ট বিবেচনা করব না :)। যেহেতু সেই সময়টি এখন বদলাবে না, তবে ভোটগুলি পারে, তাই আমি ভোট দিয়ে
অপ্টিমাইজার

এই প্রশ্নের নাম পরিবর্তন করা উচিত xnor :) তিনি মানুষ!
সিলভিউ বুর্কিয়া

উত্তর:


16

পাইথ , ৯

/:+zz1_1z

অথবা

}z:+zz1_1

এগুলি উভয়ই @ xnor এর পাইথন উত্তরের নিকট অনুবাদ, কেবল তারা এসটিডিইএন থেকে ইনপুট নেয় এবং এটি মুদ্রণ করে। প্রথমটির সমতুল্য:

z = input()
print((z+z)[1:-1].count(z))

মিথ্যা জন্য 0, সত্যের জন্য 1।

দ্বিতীয় লাইনটি সমান:

z = input()
print(z in (z+z)[1:-1])

মিথ্যা জন্য মিথ্যা, সত্য সত্য।

পাইথের অফিশিয়াল সংকলকটিতে দ্বিতীয়টির সাথে সম্পর্কিত একটি বাগ ছিল, যা আমি সবেমাত্র প্যাচ করেছি, তাই প্রথমটি আমার অফিসিয়াল জমা দেওয়া।


আমি সেই বাগ সম্পর্কে আপনাকে জানাতে একটি উপায় সন্ধান করছিলাম (বুলিয়ান মুদ্রিত হয় না)। প্রথমটির কথা ভাবেন নি এবং ব্যবহার xকরা খুব দীর্ঘ ছিল ...
ডেনিস

হ্যাঁ, বাগ এখন ঠিক করা হয়েছে। এছাড়াও, আপনি যদি বাগগুলি প্রতিবেদন করতে চান তবে গিথুব
isaacg

ওহ, সেখানে এটা। আমি গিটহাবের চারপাশে আমার পথটি জানি না এবং ডানদিকে নেভিগেশন প্যানেলটি আমি কখনই লক্ষ্য করিনি ...
ডেনিস

81

পাইথন (24)

lambda s:s in(s+s)[1:-1]

ত্রুটিযুক্ত ম্যাচগুলি এড়ানোর জন্য প্রথম এবং শেষ অক্ষরগুলি বাদ দিয়ে স্ট্রিংটি দুটি বার নিজেই সংক্ষিপ্ত আকারের স্ট্রিং হয় কিনা তা পরীক্ষা করে। যদি এটি হয় তবে এটি অবশ্যই একটি অযৌক্তিক চক্রীয় অনুক্রম হতে হবে এবং এভাবে পুনরাবৃত্ত খণ্ডগুলির যোগফল।


8
গল্ফস্ক্রিপ্টে একটি তুচ্ছ অনুবাদ 10 টি চাঁদা দেয়:..+);(;\?)
জাস্টিন

3
এটি কীভাবে কাজ করে তা আমি বেশ বুঝতে পারি না। এটি কীভাবে এটি একটি স্ট্রিং পরিচালনা করবে তার ম্যানুয়ালি ব্যাখ্যা করা উদাহরণ দিতে পারেন?
Nzall

8
@NateKerkhofs নিতে abcabcs+sএটি মধ্যে পরিণত abcabcabcabc[1:-1]দুই প্রান্ত চপ উত্পাদ bcabcabcabcab। এবং তারপরে এটির একটি সাবস্ট্রিং হিসাবে সন্ধান s in ...করার চেষ্টা করে abcabc। এই সাবস্ট্রিংটি মূল অর্ধের কোনওটিতেই পাওয়া যায় না, কারণ সেগুলি উভয়ই সংক্ষিপ্ত করা হয়েছে, সুতরাং এটি উভয় অংশকেই স্প্যান করতে হবে। বিশেষত, এটির শুরু হওয়ার আগে অবশ্যই এর নিজস্ব শেষ হওয়া উচিত, যা বোঝায় যে এটি অবশ্যই অভিন্ন (পুনরাবৃত্ত) সাবস্ট্রিংগুলি দিয়ে তৈরি করা উচিত।
মার্টিন এন্ডার

6
আপনি এটি দ্বিগুণ করার পরে এটি কাটা। abহয়ে ababযায় ba, তাই এটি মিথ্যা প্রত্যাবর্তন করে, aaহয়ে aaaaওঠে aa, যা সত্য ফিরে আসে।
হিস্টোক্র্যাট

1
@SargeBorsch এটা ঠিক একই কাজ করে: qweqweqweমধ্যে weqweqweqweqweqwহয় True
xnor

30

Regex (ECMAScript স্বাদ), 11 বাইট

রেগেক্সের জন্য একটি কাজের মতো শোনাচ্ছে!

^([^]+)\1+$

এটি এখানে পরীক্ষা করুন।

আমি ECMAScript নির্বাচন করেছি, কারণ এটি কেবলমাত্র স্বাদ (আমি জানি) যা [^]কোনও চরিত্রের সাথে মেলে matches অন্য সমস্ত ক্ষেত্রে, আমার হয় হয় তিনটি অক্ষর দীর্ঘতর .ব্যবহারের ব্যবহার পরিবর্তন করতে বা ব্যবহার করতে একটি পতাকা লাগবে [\s\S]

কীভাবে আমরা পতাকা গণনা করছি উপর নির্ভর করে, যে পারে অবশ্যই একটি বাইট খাটো করা। উদাহরণস্বরূপ, আমরা যদি প্যাটার্ন + পতাকাগুলি গণনা করি (উদাহরণস্বরূপ সীমানা ছাড়াই), পিসিআরই / পার্ল সমতুল্য হবে

/^(.+)\1+$/s

ডিলিমিটারদের উপেক্ষা করে যা 10 বাইট।

এটি এখানে পরীক্ষা করুন।

এটি কেবল স্ট্রিংগুলির সাথে মেলে যা কিছু স্ট্রিংয়ের কমপক্ষে দুটি পুনরাবৃত্তি নিয়ে গঠিত।

এখানে একটি সম্পূর্ণ 26-বাইট ES6 ফাংশন রয়েছে, তবে আমি বজায় রেখেছি যে নিয়মিত এক্সপ্রেশন জমাগুলি সাধারণত বৈধ:

f=s->/^([^]+)\1+$/.test(s)

^(.+)\1+$আমার জন্য কাজ করে যা 9 বাইট। এটি আপনার জন্য কাজ করে না?
অপ্টিমাইজার

@ অপ্টিমাইজার লাইন ব্রেকগুলির সাথে একটি স্ট্রিং চেষ্টা করুন।
মার্টিন এন্ডার

চেষ্টা করেছি asd\nasd\nasd\n। এটি কাজ করে
অপ্টিমাইজার

@ অপ্টিমাইজার রেফিডেল. com/ refiddles/ 5417fb2475622d4df7e70a00 আমার পক্ষে কাজ করছে বলে মনে হচ্ছে না (এবং এটি করা উচিত নয়)
মার্টিন এন্ডার

হ্যাঁ, এটি কাজ করে না। সম্ভবত \ আমি যখন \nম্যানুয়ালি লিখি তখন এড়াতে পারে
অপ্টিমাইজার

12

সিজেম, ৯

q__+)@+#)

এক্সনোরের ধারণার অনুরূপ।

q      " Read input. ";
__+    " Duplicate twice and concatenate them together. ";
)      " Remove the last character of the longer string. ";
@+     " Insert that character at the beginning of the shorter string. ";
#)     " Find the shorter string in the longer string, and increase by one. ";


ফাইনালের দরকার কেন )? আমি মনে করি এর যুক্তি -1 মানে মিথ্যা এবং> = 0 মানে সত্য
ডিজিটাল ট্রমা

@DigitalTrauma আমি মনে করি 0 CJam মধ্যে falsy হচ্ছে ... মত অপারেটরদের জন্য gএবং ?
jimmy23013

@ ডিজিটালট্রামা: এটি চূড়ান্তভাবে অপের উপর নির্ভর করে, তবে কেবল জিরোতে কঠোরভাবে কথা বলা সিজোমে মিথ্যা বলে বিবেচিত হয়।
ডেনিস

@ ইউজার ২৩০১৩ @ ডেনিস কিন্তু ফাইন্ড #অপারেটর সম্পর্কে কী ? অবশ্যই এর ফলাফল সাফল্য বনাম ব্যর্থতার দৃষ্টিকোণ থেকে "সত্য"?
ডিজিটাল ট্রমা

7

এপিএল, ১১

2<+/x⍷,⍨x←⍞

ব্যাখ্যাটি
স্ক্রিন
x←অ্যাসাইনগুলি থেকে পরিবর্তনশীলগুলিতে স্ট্রিং ইনপুট নেয় x
,⍨যা স্ট্রিংটিকে নিজেই
x⍷অনুসন্ধান xকরে ফলাফল ফলাফলের স্ট্রিংয়ের জন্য অনুসন্ধান করে । ম্যাচের শুরুর অবস্থানে এবং অন্য কোথাও 0 এর সমন্বিত একটি অ্যারে প্রদান করে। যোগফল 2 এর চেয়ে বেশি হলে
+/অ্যারের
2<চেকটি যোগ করে (2 টি তুচ্ছ ম্যাচ হবে বলে)


7

সিজেম, 10 বাইট

আমি সিজেম বাগটি ধরলাম। আমার প্রথম উত্তর, তাই সম্ভবত আরও কিছু গল্ফ করা যেতে পারে:

q__+(;);\#

ফলসের জন্য আউটপুট -1 এবং সত্যের জন্য একটি সংখ্যা> = 0


5
ক্লাবে স্বাগতম!
ডেনিস

5

গল্ফস্ক্রিপ্ট, 10 বাইট

..+(;);\?)

Xnor এর চতুর ধারণাটির আরও একটি বাস্তবায়ন।


হাহাহা, আমি এই মাত্র এক মিনিট আগে পোস্ট করেছি: কোডগলফ.স্ট্যাকেক্সেঞ্জাওয়েজ / প্রশ্নস / / 3785৫১ / । আমি এটিকে উত্তর হিসাবে পোস্ট করার বিষয়ে ভেবেছিলাম, তবে আমি ভেবেছিলাম যে তুচ্ছ অনুবাদগুলি আগ্রহী নয়।
জাস্টিন

আমি এবারও নতুন উত্তরগুলির জন্য চেক করেছি, তবে নতুন মন্তব্যের জন্য নয় ... আপনার কোডটি )যদিও অনুপস্থিত ; যখন মিল নেই, এটি মুদ্রণ করবে -1। আপনি যদি এটি উত্তর হিসাবে পোস্ট করতে চলেছেন, আমি সানন্দে আমার মুছবেন।
ডেনিস

)আপনি আপনার উত্তর পোস্ট করার ঠিক আগে আমি যুক্ত করেছি (আমি মন্তব্যটি সম্পাদনা করেছি)
জাস্টিন

1
উন্নত সংস্করণ (CJam মধ্যে): q__+)@+#)। এটি গল্ফস্ক্রিপ্টে কাজ করে না।
jimmy23013

1
@ ব্যবহারকারী23013: আবার নেই। আমি যে পোস্ট করতে যাচ্ছি! এতক্ষণে সেখানে প্রচুর সিজেমার আছে ...: পি
ডেনিস

3

পাইথন - 59 57

lambda s:any([s*n==s[:n]*len(s)for n in range(2,len(s))])

3

খাঁটি বাশ, 30 বাইট

@ এক্সনরের চতুর উত্তরটির সহজ বন্দর :

[[ ${1:1}${1:0: -1} =~ "$1" ]]

প্রস্থান কোডটি সত্যের জন্য 0 এবং মিথ্যাটির জন্য 1:

$ for s in 'Hello, World!Hello, World!Hello, World!' 'asdfasdfasdf' 'asdfasdfa' 'ĴĴĴĴĴĴĴĴĴ' 'ĴĴĴ123ĴĴĴ123' 'abcdefgh'; do echo "./isrepeated.sh "\"$s\"" returns $(./isrepeated.sh "$s"; echo $?)"; done
./isrepeated.sh "Hello, World!Hello, World!Hello, World!" returns 0
./isrepeated.sh "asdfasdfasdf" returns 0
./isrepeated.sh "asdfasdfa" returns 1
./isrepeated.sh "ĴĴĴĴĴĴĴĴĴ" returns 0
./isrepeated.sh "ĴĴĴ123ĴĴĴ123" returns 0
./isrepeated.sh "abcdefgh" returns 1
$ 

এর =~মধ্যে দ্রষ্টব্যটি [[ ... ]]হ'ল বাশের রেগেক্স অপারেটর । তবে "প্যাটার্নের কোনও অংশই স্ট্রিং হিসাবে মিলতে বাধ্য করার জন্য উদ্ধৃত করা যেতে পারে" । সুতরাং যেমন প্রায়শই বাশের ক্ষেত্রে কেস পাওয়া যায়, ডান দিকের উদ্ধৃতি পাওয়া খুব গুরুত্বপূর্ণ - এখানে আমরা কেবল স্ট্রিং সাবম্যাচটি পরীক্ষা করতে চাই, একটি রেজেক্স ম্যাচ নয়।


3

টিআই-বেসিক - 32

আমি ভেবেছিলাম আমি একটি টোকেনাইজড ভাষা চেষ্টা করব। আনসগুলিতে স্ট্রিং দিয়ে চালান, মিথ্যা হলে 0 প্রদান করে এবং সত্য হয় যদি পুনরাবৃত্ত স্ট্রিংয়ের দৈর্ঘ্য।

inString(sub(Ans+Ans,1,2length(Ans)-1),sub(Ans,length(Ans),1)+Ans

আশ্চর্যজনকভাবে এটি কীভাবে ওয়ান-লাইনার।


তবে ... তবে ... আমি টিআই-বেসিক ব্যবহার করতে যাচ্ছিলাম: পি +1
টিমটেক

@ টিমটেক ওয়েল, টিআই-বেসিকের স্ট্রিং ম্যানিপুলেশন চেষ্টা করে এমন কাউকে লক্ষ্য করুন: টিআই-বেসিকের স্ট্রিং ম্যানিপুলেশন চেষ্টা করবেন না। : পি এটি তৈরি এবং অপ্টিমাইজ করা এত কঠিন ছিল।
জোশিয়াহ উইনস্লো

ভাল ধারণা. স্ট্রিং ম্যানিপুলেশন একটি করণীয় সবচেয়ে কঠিন কাজ। তবে, আমি এর মতো বেশ কয়েকটি উত্তর পোস্ট করেছি, সুতরাং আমার ধারণা এখন আপনার প্রতিযোগী রয়েছে;)
টিমটেক

এনে দাও! : পি
জোসিয়াহ উইনস্লো

3

ইসমাস্ক্রিপ্ট 6 (189)

(function(){var S=String.prototype,r=S.repeat;S.isRepeated=function(){return!1};S.repeat=function(c){var s=new String(r.call(this,c));if(c>1)s.isRepeated=function(){return!0};return s}}());

 

< console.log("abc".isRepeated(),"abc".repeat(10).isRepeated());
> false true

নিশ্চয়ই এটাই কি একমাত্র বৈধ সমাধান? উদাহরণস্বরূপ, শব্দ (স্ট্রিং) nanaঅগত্যা তৈরি করা হয়নি"na".repeat(2)


"nana"নয়, তবে প্রশ্নটি .repeatব্যবহার করা হয়েছে কিনা তা পরীক্ষা করছে না। বরং, স্ট্রিংটি পুনরাবৃত্তি হওয়া বা না
অপ্টিমাইজার

আমি জানি, আমি কেবল একটি স্মার্ট গাধা হওয়ার চেষ্টা করছিলাম: পি
মার্ডক্সক্স

2

ECMAScript 6 (34 36 )

আর একটি ES6 উত্তর, তবে xnor এর কৌশল ব্যবহার repeatএবং ব্যবহার না করে :

f=i=>(i+i).slice(1,-1).contains(i)

ফায়ারফক্সের মতো একটি ES6- সক্ষম ব্রাউজারের কনসোলে চালানো উচিত।


2

সি 85

l,d;f(s){return l=strlen(s),strstr(d,strcpy(strcpy(d=alloca(l*2+1),s)+l,s)-1)-d-l+1;}

এটি বেশ লম্বা হয়ে উঠেছে তবে বাহ্যিক ফাংশন সবসময় এর মতো থাকে। আমার মনে এলো যে আমি প্রতিটি স্ট্রিং ফাংশন তাদের লুপ বা পুনরাবৃত্তির দ্বারা প্রতিস্থাপন করে আবার লিখতে পারি। তবে আমার অভিজ্ঞতায় এটি দীর্ঘতর হবে এবং খোলামেলাভাবে আমি এটি চেষ্টা করতে চাই না।

কিছু গবেষণার পরে আমি উচ্চ পারফরম্যান্সের সমাধানগুলি দেখতে পেয়েছি তবে এক্সনারের মতো চালাক (এবং সংক্ষিপ্ত) হিসাবে নয়। শুধু আসল হতে ... আমি একই ধারণাটি পুনরায় লিখেছি সি।

ব্যাখ্যা:

int length, 
    duplicate;
int is_repetition(char *input)
{
    // length = "abc" -> 3
    length = strlen(input);
    // alloca because the function name is as long as "malloc" 
    // but you don't have to call free() because it uses the stack
    // to allocate memory
    // duplicate = x x x x x x + x
    duplicate = alloca(length*2 + 1);
    // duplicate = a b c 0 x x + x
    strcpy(duplicate, input);
    // duplicate = a b c a b c + 0
    strcpy(duplicate + length, input);
    if (strstr(duplicate,duplicate + length - 1) != duplicate + length - 1)
        // repetition
        // e.g. abab -> abababab -> aba[babab]
        // -> first occurence of [babab] is not aba[babab]
        // but a[babab]ab -> this is a repetition
        return 1;
    else
        // not repetition
        // e.g. abc -> abcabc -> ab[cabc]
        // -> first occurence of [cabc] is ab[cabc]
        // it matches the last "cabc"
        return 0;
}

1

ইসমাস্ক্রিপ্ট 6 (59 62 67 73 )

কোনও বিজয়ী নন, তবে মনে হচ্ছে ইএস 6-তে এই প্রশ্নের যে আসলে repeatফাংশনটি ব্যবহার করে তার জন্য কমপক্ষে একটি উত্তর থাকতে হবে :

f=i=>[...i].some((_,j)=>i.slice(0,j).repeat(i.length/j)==i)

ফায়ারফক্সের মতো একটি ES6- সক্ষম ব্রাউজারের কনসোলে চালানো উচিত।

এটি অনেক অপ্রয়োজনীয় পুনরাবৃত্তি করে, তবে কেন এটি এড়াতে এটি আরও দীর্ঘ করুন, তাই না?

  • সম্পাদনা # 1: একটি ফাংশনে রূপান্তর করে কয়েকটি বাইট সংরক্ষণ করেছেন। অপ্টিমাইজারকে ধন্যবাদ!
  • সম্পাদনা # 2: আরও বাইট সংরক্ষণ করার জন্য স্প্রেড অপারেটর ট্রিকের জন্য এইচএসএলকে ধন্যবাদ!
  • সম্পাদনা # 3: এবং রব ডব্লিউকে আরও 3 বাইটের জন্য ধন্যবাদ!

সেখানে আরও বাইট সংরক্ষণের জন্য আপনি কেবল এটি একটি ফাংশনে রূপান্তর করতে পারেন
অপ্টিমাইজার

@ অপ্টিমাইজার সত্য, আমার ধারণা এটি "স্টিডিন" হতে হবে না। আপনার নাম পর্যন্ত আপনার লাইভ আপ :)
ইনগো বার্ক

আমি এই পরীক্ষা করা হয়েছে, কিন্তু আপনি ব্যবহার করতে সক্ষম হওয়া উচিত বিস্তার অপারেটর জন্য [...i]পরিবর্তেi.split('')
NinjaBearMonkey

1
@ এসএসএল ক্রেজি, এটি কাজ করে। আমি জানতাম না স্প্রেড অপারেটর এর মতো কাজ করে। মূলত আমি বেআইনীভাবে ব্যাপ্তিটি সহ একটি অ্যারে তৈরি করতে এটি ব্যবহার করার চেষ্টা করেছি 0..N। ধন্যবাদ!
ইনগো বার্ক

1
.slice(0,j)এর চেয়ে ছোট একটি চরিত্র .substr(0,j)। তদুপরি, একটি পূর্ণসংখ্যার রূপান্তরটি অপ্রয়োজনীয় মনে হয় |0অপসারণ করা যায় ( |0আসলে ব্যবহারের পদ্ধতিটির কার্যকারিতা হ্রাস করে কারণ এটি 2 ^ 31 এর বেশি হওয়া পুনরাবৃত্তির জন্য ব্যর্থ হবে)।
রব ডব্লু


0

জাভা 8, 28 বাইট

s->s.matches("(?s)(.+)\\1+")

এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা:

ইনপুট-স্ট্রিংটি রেজেক্সের সাথে মেলে কিনা তা পরীক্ষা করে , যেখানে পুরো স্ট্রিংয়ের সাথে মেলে String#matchesযুক্তভাবে adds রেজেক্সের নিজেই ব্যাখ্যা:^...$

^(s?)(.+)\1+$
^                Begin of the string
 (s?)            Enable DOTALL-mode, where `.` also matches new-lines
     (           Open capture group 1
      .+          One or more characters
        )        Close capture group 1
         \1+     Plus the match of the capture group 1, one or more times
            $    End of the string

সুতরাং এটি মূলত যাচাই করে যে কোনও স্ট্রাস্টিং দুই বা ততোধিক বার পুনরাবৃত্তি করা হয়েছে (নতুন লাইনগুলিকে সমর্থন করে)।

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