স্ট্রিংয়ের মধ্যে ইউআরএলগুলি খুঁজতে নিয়মিত অভিব্যক্তি


95

স্ট্রিংয়ের মধ্যে ইউআরএলগুলি খুঁজতে আমি যে কোনও নিয়মিত অভিব্যক্তিটি ব্যবহার করতে পারি তা কি কেউ জানেন? পুরো স্ট্রিংটি ইউআরএল কিনা তা নির্ধারণের জন্য আমি গুগলে প্রচুর নিয়মিত প্রকাশ পেয়েছি তবে ইউআরএলগুলির জন্য আমার একটি সম্পূর্ণ স্ট্রিং সন্ধান করতে সক্ষম হওয়া দরকার। উদাহরণস্বরূপ, আমি খুঁজে পেতে সক্ষম হতে চাই www.google.comএবং http://yahoo.comনিম্নলিখিত স্ট্রিং:

Hello www.google.com World http://yahoo.com

আমি স্ট্রিংটিতে নির্দিষ্ট ইউআরএল খুঁজছি না। আমি স্ট্রিংয়ের সমস্ত URL টি সন্ধান করছি যার জন্য আমার নিয়মিত প্রকাশের প্রয়োজন।


যদি আপনার পুরো স্ট্রিংয়ের জন্য এক্সপ্রেশন থাকে তবে কেবল স্ট্রিংয়ের অংশগুলিকে মেলে তুলতে কেবল ^ এবং $ আউট নিন।
entonio

উত্তর:


206

এটি আমি ব্যবহার করি

(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?

আমার জন্য কাজ করে, আপনার জন্য কাজ করা উচিত।


7
ফরোয়ার্ড স্ল্যাশগুলি এড়াতে ভুলবেন না।
চিহ্নিত করুন

4
এটি 2017, এবং ইউনিকোড ডোমেনের নামগুলি পুরো জায়গা জুড়ে। \wআন্তর্জাতিক প্রতীক মেলে না হতে পারে (Regex ইঞ্জিন উপর নির্ভর করে), পরিসর পরিবর্তে প্রয়োজন হয়: a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF
মাইকেল অ্যান্টিপিন

4
এটি সাধারণ উদ্দেশ্যে জরিমানা, তবে অনেকগুলি ক্ষেত্রে এটি ধরা পড়ে না। এটি কার্যকর করে যে আপনার লিঙ্কগুলি একটি প্রোটোকল সহ উপসর্গযুক্ত। যদি প্রোটোকল উপেক্ষা করা বেছে নেওয়া হয় তবে ইমেলগুলির শেষগুলি গ্রহণ করা হয় কারণ এটি টেস্ট @ টেস্টিং ডটকমের ক্ষেত্রে।
স্কোয়াজz

4
করা উচিত নয় [\w_-]হতে [\w-]? কারণ ইতিমধ্যে \wম্যাচ _। প্রতি মজিলা
ডক্সে

4
উত্সাহিত কিন্তু এই উত্তরটি প্রশ্নটি যা জিজ্ঞাসা করছে তা কার্যকর করে না www.yahoo.com"""(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?""".r.findAllIn("www.google.com").toList। উত্তরের
জন্যও এক্সপ্ল্যানেশন অভাব রয়েছে

45

অনুমান করুন কোনও রেজেক্স এই ব্যবহারের জন্য উপযুক্ত নয়। আমি এখানে বেশ শক্ত একটি পেয়েছি

/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm

এখানে পোস্ট করা অন্যান্যগুলির তুলনায় কিছু পার্থক্য / সুবিধা:

  • এটি ইমেল ঠিকানার সাথে মেলে না
  • এটি লোকালহোস্টের সাথে মেলে: 12345
  • এটি moo.comছাড়া httpবা এর মতো কিছু সনাক্ত করতে পারে নাwww

উদাহরণের জন্য এখানে দেখুন


4
এটি মেলে www.e এটি কোনও বৈধ url নয়
ইহোর হেরাসিমচুক

gবিকল্প সব রেগুলার এক্সপ্রেশন বাস্তবায়নের মধ্যে বৈধ নয় (রুবি এর যেমন বিল্ট-ইন বাস্তবায়ন)।
হুলিয়াক্স

23
text = """The link of this question: /programming/6038061/regular-expression-to-find-urls-within-a-string
Also there are some urls: www.google.com, facebook.com, http://test.com/method?param=wasd
The code below catches all urls in text and returns urls in list."""

urls = re.findall('(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-?=%.]+', text)
print(urls)

আউটপুট:

[
    '/programming/6038061/regular-expression-to-find-urls-within-a-string', 
    'www.google.com', 
    'facebook.com',
    'http://test.com/method?param=wasd'
]

কোটলিন ভাল urlRegex = "(? :( ?: https? | Ftp): \\ / \\ /)? [\\ w / \\ -? =%।] + \\ ? =%।] + "
অক্ষয় নন্দওয়ানা

&Url এ পরামিতি মিস করে । যেমন http://test.com/method?param=wasd&param2=wasd2প্যারাম 2 মিস করে
ট্রফিজিক

10

এখানে প্রদত্ত সমাধানগুলির মধ্যে আমার কাছে থাকা সমস্যা / ব্যবহারের কেসগুলির সমাধান হয়নি।

আমি এখানে যা সরবরাহ করেছি, তা এখনও অবধি আমি খুঁজে পেয়েছি / তৈরি করেছি। আমি যখন নতুন প্রান্ত-কেসগুলি হ্যান্ডেল করি না তখন এটি আপডেট করব।

\b
  #Word cannot begin with special characters
  (?<![@.,%&#-])
  #Protocols are optional, but take them with us if they are present
  (?<protocol>\w{2,10}:\/\/)?
  #Domains have to be of a length of 1 chars or greater
  ((?:\w|\&\#\d{1,5};)[.-]?)+
  #The domain ending has to be between 2 to 15 characters
  (\.([a-z]{2,15})
       #If no domain ending we want a port, only if a protocol is specified
       |(?(protocol)(?:\:\d{1,6})|(?!)))
\b
#Word cannot end with @ (made to catch emails)
(?![@])
#We accept any number of slugs, given we have a char after the slash
(\/)?
#If we have endings like ?=fds include the ending
(?:([\w\d\?\-=#:%@&.;])+(?:\/(?:([\w\d\?\-=#:%@&;.])+))*)?
#The last char cannot be one of these symbols .,?!,- exclude these
(?<![.,?!-])

4
এই জাভাস্ক্রিপ্ট বন্ধুত্বপূর্ণ করার কোন উপায় আছে? নামকৃত ক্যাপচারিং গ্রুপগুলি যেমন পুরোপুরি কার্যকর হয় না তাই প্রোটোকল মান চেকটি বৈধ হয় না।
আইনর্ড

6

আমি মনে করি এই রেজেক্স প্যাটার্নটি আপনি যা চান তা হ্যান্ডেল করে

/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/

আর এটি ইউরালগুলি বের করার একটি স্নিপেট উদাহরণ:

// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
$text = "The text you want  /programming/6038061/regular-expression-to-find-urls-within-a-string to filter goes here.";

// Check if there is a url in the text
preg_match_all($reg_exUrl, $text, $url,$matches);
var_dump($matches);

5

উপরের সমস্ত উত্তর URL এ ইউনিকোড অক্ষরের সাথে মেলে না, উদাহরণস্বরূপ: http://google.com?query=đức+filan+đã+ অনুসন্ধান

সমাধানের জন্য, এটির কাজ করা উচিত:

(ftp:\/\/|www\.|https?:\/\/){1}[a-zA-Z0-9u00a1-\uffff0-]{2,}\.[a-zA-Z0-9u00a1-\uffff0-]{2,}(\S*)

4
ইউএনএলগুলিতে আরএফসি 1738 অনুসারে ইউনিকোড অক্ষর নিষিদ্ধ করা হয়েছিল ( faqs.org/rfcs/rfc1738.html )। তাদের মান মেনে চলার জন্য শতাংশ এনকোড করতে হবে - যদিও আমি মনে করি এটি আরও সম্প্রতি পরিবর্তিত হতে পারে - w3.org/International/articles/idn-and-iri
mrswadge

@ এমসওয়াডেজ আমি কেবল মামলাগুলি কভার করি। আমরা নিশ্চিত নই যে সমস্ত মানুষ মানদণ্ডের বিষয়ে চিন্তা করে। আপনার তথ্যের জন্য আপনাকে ধন্যবাদ।
ডুক ফিলান

শুধু এই এক আমার যেমন "হিসাবে URL গুলি থাকার জন্য পুরোপুরি কাজ example.com " "www.exmaple.com" " example.com " " example.co.in " " exmaple.com/?q='me '"
Krissh

5

লিঙ্কগুলি নির্বাচন করতে যদি আপনার কঠোর হতে হয় তবে আমি যাব:

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

আরও ইনফোসের জন্য, এটি পড়ুন:

ইউআরএল মিলে যাওয়ার জন্য একটি উন্নত লিবারেল, নির্ভুল রেজেক্স প্যাটার্ন


4
এটা করবেন না। নিয়মিত- এক্সপ্রেশন.इनফো / ক্যাটাস্ট্রোফিক এইচটিএমটিএল এটি আপনার অ্যাপ্লিকেশনটিকে মেরে ফেলবে ...
অরিক

4

আমি দেখেছি এই যা সাব অংশ সহ অধিকাংশ নমুনা লিঙ্ক, জুড়ে।

রেজেক্স হ'ল:

(?:(?:https?|ftp):\/\/|\b(?:[a-z\d]+\.))(?:(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))?\))+(?:\((?:[^\s()<>]+|(?:\(?:[^\s()<>]+\)))?\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))?

3

আপনার যদি url প্যাটার্ন থাকে তবে আপনার স্ট্রিংয়ে এটি সন্ধান করতে সক্ষম হওয়া উচিত। শুধু নিশ্চিত করুন যে প্যাটার্ন স্বল্পতা আছে তা নিশ্চিত করুন ^এবং $উপলক্ষে শুরু এবং URL স্ট্রিং এর শেষে। সুতরাং পি যদি URL এর প্যাটার্ন হয় তবে পি এর জন্য মিলগুলি সন্ধান করুন।


এটি আমি খুঁজে পেয়েছি যে পুরো স্ট্রিংয়ের URL টি কিনা URL যাচাই করে। আপনি যেমন বলেছিলেন তেমনই আমি the ভিক্ষা এবং। এ বেরিয়েছি এবং এটি এখনও কার্যকর হয়নি। আমি কি ভুল করছি? ^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*[^\.\,\)\(\s]$
ব্যবহারকারী 75826363

আপনি কোন ভাষাটি ব্যবহার করছেন তা যদি আপনি দেখিয়ে থাকেন তবে এটির সহায়তা হতে পারে। যেভাবেই হোক না কেন, অবশ্যই পরীক্ষা করে দেখুন http://regexpal.com/; আপনি আপনার স্ট্রিংয়ের বিপরীতে ভিন্ন অভিব্যক্তিটি পরীক্ষা করতে পারেন যতক্ষণ না আপনি এটি সঠিকভাবে পান।
entonio

@ ইউজার 758263 - ইউআরএলটির জন্য আপনার কি সত্যিই এমন জটিল রেজেেক্স দরকার? আপনি সম্ভবত যে url টি খুঁজে পেতে পারেন তার উপর নির্ভর করে। রেজেক্স চেষ্টা করে দেখতে gskinner.com/RegExr দেখুন । তারা Communityurl এর জন্য ডানদিকে ডানদিকে শত শত নমুনা রয়েছে
manojlds

আমি সমস্ত সম্ভাব্য ইউআরএল সন্ধান করার চেষ্টা করছি এবং আমি সি ++ ব্যবহার করছি। লিঙ্কগুলি এনটোনিও এবং মনোজাল্ডগুলির জন্য ধন্যবাদ। জিস্কিনার সাইটটি বিশেষত সহায়ক কারণ এটির নমুনা ছিল।
ব্যবহারকারী 75826363



2

সংক্ষিপ্ত এবং সহজ। আমি এখনও জাভাস্ক্রিপ্ট কোডে পরীক্ষা করিনি তবে দেখে মনে হচ্ছে এটি কার্যকর হবে:

((http|ftp|https):\/\/)?(([\w.-]*)\.([\w]*))

Regex101.com এ কোড

কোড পূর্বরূপ


4
আমি আপনার রেইগেক্সটি পছন্দ করেছি কারণ এটি ঠিক আমি যা খুঁজছিলাম তা ছিল: আমাকে ইউআরএলগুলি সনাক্ত এবং কিছু পাঠ্য থেকে বের করতে হবে, বৈধ নয়। রেলপথে কাজ করেছেন।
দাগমার

@ ডাগমার শুনে আমি আনন্দিত :)
বাফসার ১


1

এটি (আপনার যা প্রয়োজন তার উপর নির্ভর করে) রাজীবের উত্তরটি / সামঞ্জস্য করার ক্ষেত্রে সামান্য উন্নতি:

([\w\-_]+(?:(?:\.|\s*\[dot\]\s*[A-Z\-_]+)+))([A-Z\-\.,@?^=%&amp;:/~\+#]*[A-Z\-\@?^=%&amp;/~\+#]){2,6}?

এটি কী করে এবং মেলে না তার উদাহরণের জন্য এখানে দেখুন ।

আমি "HTTP" ইত্যাদির চেক থেকে মুক্তি পেয়েছি কারণ আমি এগুলি ছাড়াই url ধরতে চেয়েছিলাম। আমি কিছু আবদ্ধ ইউআরএল (যেমন যেখানে "ব্যবহারকারীর ব্যবহার [বিন্দু" পরিবর্তে "।") পেতে রেগেক্সে কিছুটা যুক্ত হয়েছিল। অবশেষে v2.0 এবং "moo.0dd" এর মতো মিথ্যা ধনাত্মকতা কমাতে আমি "Z ডাব্লু" এর সাথে "এজেড" এবং "{2,3}" প্রতিস্থাপন করেছি।

এই স্বাগত কোন উন্নতি।


[a-zA-Z]{2,3}ম্যাচিং টিএলডি জন্য সত্যিই খারাপ, সরকারি তালিকা দেখুন: data.iana.org/TLD/tlds-alpha-by-domain.txt । এছাড়াও আপনার রেজেক্স মিলছে _.........&&&&&&এটি নিশ্চিত নয় যে এটি একটি বৈধ url।
টোটো

সেই জে সুইস চাইলির জন্য ধন্যবাদ, উন্নতির জন্য কোনও পরামর্শ (বিশেষত মিথ্যা ইতিবাচক জন্য)?
avjarsveld

1

একটি খুব সম্ভবত সরল, কিন্তু কাজের পদ্ধতি হতে পারে:

[localhost|http|https|ftp|file]+://[\w\S(\.|:|/)]+

আমি এটি পাইথনের উপর পরীক্ষা করেছি এবং যতক্ষণ না স্ট্রিং পার্সিংয়ের আগে এবং পরে একটি জায়গা থাকে এবং ইউআরএলের কোনওটিই (যা আমি আগে কখনও দেখিনি) এটি ঠিক হওয়া উচিত।

এটি প্রদর্শিত একটি অনলাইন আদর্শ এখানে

তবে এটি ব্যবহারের কিছু সুবিধা এখানে রয়েছে:

  • এটা তোলে স্বীকার file:এবং localhostসেইসাথে IP ঠিকানা
  • এটা করবে না কখনো তাদের ছাড়া মেলে
  • এটি অস্বাভাবিক চরিত্রগুলি যেমন #বা -(এই পোস্টের ইউআরএল দেখুন) কিছু মনে করে না

1

@ জাস্টিনলভিনের সরবরাহিত রেজেক্স ব্যবহার করে ব্যাক-স্ল্যাশগুলিতে সঠিকভাবে পালানোর সিকোয়েন্স ছিল না। এখনই সঠিক হতে আপডেট হয়েছে এবং এফটিপি প্রোটোকলের সাথে মেলে শর্তে যুক্ত করা হয়েছে: প্রোটোকলের সাথে বা ছাড়াই এবং "www।" ছাড়াই সমস্ত url এর সাথে মিলবে।

কোড: ^((http|ftp|https):\/\/)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?

উদাহরণ: https://regex101.com/r/uQ9aL4/65


1

উন্নত

এইগুলির মতো url সনাক্ত করে:

রেজেক্স:

/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/gm

1

নিজেকে লিখে রেখেছি:

let regex = /([\w+]+\:\/\/)?([\w\d-]+\.)*[\w-]+[\.\:]\w+([\/\?\=\&\#]?[\w-]+)*\/?/gm

এটি নিম্নলিখিত সমস্ত ডোমেনের উপর কাজ করে:

https://www.facebook.com
https://app-1.number123.com
http://facebook.com
ftp://facebook.com
http://localhost:3000
localhost:3000/
unitedkingdomurl.co.uk
this.is.a.url.com/its/still=going?wow
shop.facebook.org
app.number123.com
app1.number123.com
app-1.numbEr123.com
app.dashes-dash.com
www.facebook.com
facebook.com
fb.com/hello_123
fb.com/hel-lo
fb.com/hello/goodbye
fb.com/hello/goodbye?okay
fb.com/hello/goodbye?okay=alright
Hello www.google.com World http://yahoo.com
https://www.google.com.tr/admin/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
https://google.com.tr/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
http://google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
ftp://google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
www.google.com.tr/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
www.google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
drive.google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
https://www.example.pl
http://www.example.com
www.example.pl
example.com
http://blog.example.com
http://www.example.com/product
http://www.example.com/products?id=1&page=2
http://www.example.com#up
http://255.255.255.255
255.255.255.255

আপনি এখানে regex101 এ কিভাবে সম্পাদন করতে পারেন এবং প্রয়োজন অনুযায়ী সামঞ্জস্য করতে পারেন


0

আমি দুটি বিন্দু বা পিরিয়ডের মধ্যে পাঠ্য সন্ধানের যুক্তি ব্যবহার করি

নীচে রেজেক্স পাইথনের সাথে কাজ করে

(?<=\.)[^}]*(?=\.)



0
(?:vnc|s3|ssh|scp|sftp|ftp|http|https)\:\/\/[\w\.]+(?:\:?\d{0,5})|(?:mailto|)\:[\w\.]+\@[\w\.]+

আপনি যদি প্রতিটি অংশের ব্যাখ্যা চান তবে রেজেক্সার [।] কম এ চেষ্টা করুন যেখানে আপনি প্রতিটি চরিত্রের দুর্দান্ত ব্যাখ্যা পাবেন।

এটি একটি "|" দ্বারা বিভক্ত বা "ওআর" কারণ সমস্ত ব্যবহারযোগ্য ইউআরআইতে "//" নেই তাই এটি যেখানে আপনি স্কিমগুলির একটি তালিকা বা শর্তাদি তৈরি করতে আগ্রহী যেগুলি আপনার সাথে মেলাতে আগ্রহী।


0

আমি সি # উরি ক্লাসটি ব্যবহার করেছি এবং এটি আইপি অ্যাড্রেস, লোকালহোস্টের সাথে ভালভাবে কাজ করে

 public static bool CheckURLIsValid(string url)
    {
        Uri returnURL;

       return (Uri.TryCreate(url, UriKind.Absolute, out returnURL)
           && (returnURL.Scheme == Uri.UriSchemeHttp || returnURL.Scheme == Uri.UriSchemeHttps));


    }

0

আমি স্টিফান হেনজির সমাধানটি পছন্দ করেছিলাম তবে এটি 34.56 অবধি উঠবে। এটি খুব সাধারণ এবং আমি এইচটিএমএল আনসারসড করেছি। একটি url এর জন্য 4 টি অ্যাঙ্কর রয়েছে;

www,

http: \ (এবং সহ),

। তারপরে চিঠিগুলি এবং তারপরে /,

বা চিঠি। এবং এর মধ্যে একটি: https://ftp.isc.org/www/survey/report/current/bynum.txt

আমি এই থ্রেড থেকে প্রচুর তথ্য ব্যবহার করেছি। সবাইকে ধন্যবাদ.

"(((((http|ftp|https|gopher|telnet|file|localhost):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]{2,200}(?:(?:\\.[\\w_-]+)*))((\\.[\\w_-]+\\/([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(\\.((org|com|net|edu|gov|mil|int|arpa|biz|info|unknown|one|ninja|network|host|coop|tech)|(jp|br|it|cn|mx|ar|nl|pl|ru|tr|tw|za|be|uk|eg|es|fi|pt|th|nz|cz|hu|gr|dk|il|sg|uy|lt|ua|ie|ir|ve|kz|ec|rs|sk|py|bg|hk|eu|ee|md|is|my|lv|gt|pk|ni|by|ae|kr|su|vn|cy|am|ke))))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"

উপরে "ইউরালস: www.google.com, ফেসবুক.কম, HTTP: //test.com/" এর মতো স্ট্রিং ব্যতীত সমস্ত কিছু সমাধান করা হয় যা এটি একক স্ট্রিং হিসাবে ফিরে আসে। Tbh idk কেন আমি গোফার ইত্যাদি যুক্ত করেছি প্রুফ আর কোড

if(T){
  wierdurl<-vector()
  wierdurl[1]<-"https://JP納豆.例.jp/dir1/納豆 "
  wierdurl[2]<-"xn--jp-cd2fp15c.xn--fsq.jp "
  wierdurl[3]<-"http://52.221.161.242/2018/11/23/biofourmis-collab"
  wierdurl[4]<-"https://12000.org/ "
  wierdurl[5]<-"  https://vg-1.com/?page_id=1002 "
  wierdurl[6]<-"https://3dnews.ru/822878"
  wierdurl[7]<-"The link of this question: /programming/6038061/regular-expression-to-find-urls-within-a-string
  Also there are some urls: www.google.com, facebook.com, http://test.com/method?param=wasd
  The code below catches all urls in text and returns urls in list. "
  wierdurl[8]<-"Thelinkofthisquestion:/programming/6038061/regular-expression-to-find-urls-within-a-string
  Alsotherearesomeurls:www.google.com,facebook.com,http://test.com/method?param=wasd
  Thecodebelowcatchesallurlsintextandreturnsurlsinlist. "
  wierdurl[9]<-"Thelinkofthisquestion:/programming/6038061/regular-expression-to-find-urls-within-a-stringAlsotherearesomeurlsZwww.google.com,facebook.com,http://test.com/method?param=wasdThecodebelowcatchesallurlsintextandreturnsurlsinlist."
  wierdurl[10]<-"1facebook.com/1res"
  wierdurl[11]<-"1facebook.com/1res/wat.txt"
  wierdurl[12]<-"www.e "
  wierdurl[13]<-"is this the file.txt i need"
  wierdurl[14]<-"xn--jp-cd2fp15c.xn--fsq.jpinspiredby "
  wierdurl[15]<-"[xn--jp-cd2fp15c.xn--fsq.jp/inspiredby "
  wierdurl[16]<-"xnto--jpto-cd2fp15c.xnto--fsq.jpinspiredby "
  wierdurl[17]<-"fsety--fwdvg-gertu56.ffuoiw--ffwsx.3dinspiredby "
  wierdurl[18]<-"://3dnews.ru/822878 "
  wierdurl[19]<-" http://mywebsite.com/msn.co.uk "
  wierdurl[20]<-" 2.0http://www.abe.hip "
  wierdurl[21]<-"www.abe.hip"
  wierdurl[22]<-"hardware/software/data"
  regexstring<-vector()
  regexstring[2]<-"(http|ftp|https)://([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[3]<-"/(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#\\/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#\\/%=~_|$])/igm"
  regexstring[4]<-"[a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]?"
  regexstring[5]<-"((http|ftp|https)\\:\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[6]<-"((http|ftp|https):\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?"
  regexstring[7]<-"(http|ftp|https)(:\\/\\/)([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[8]<-"(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#/%=~_|$])"
  regexstring[10]<-"((http[s]?|ftp):\\/)?\\/?([^:\\/\\s]+)((\\/\\w+)*\\/)([\\w\\-\\.]+[^#?\\s]+)(.*)?(#[\\w\\-]+)?"
  regexstring[12]<-"http[s:/]+[[:alnum:]./]+"
  regexstring[9]<-"http[s:/]+[[:alnum:]./]+" #in DLpages 230
  regexstring[1]<-"[[:alnum:]-]+?[.][:alnum:]+?(?=[/ :])" #in link_graphs 50
  regexstring[13]<-"^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$"
  regexstring[14]<-"(((((http|ftp|https):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]+(?:(?:\\.[\\w_-]+)*))((\\.((org|com|net|edu|gov|mil|int)|(([:alpha:]{2})(?=[, ]))))|([\\/]([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"
  regexstring[15]<-"(((((http|ftp|https|gopher|telnet|file|localhost):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]{2,200}(?:(?:\\.[\\w_-]+)*))((\\.[\\w_-]+\\/([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(\\.((org|com|net|edu|gov|mil|int|arpa|biz|info|unknown|one|ninja|network|host|coop|tech)|(jp|br|it|cn|mx|ar|nl|pl|ru|tr|tw|za|be|uk|eg|es|fi|pt|th|nz|cz|hu|gr|dk|il|sg|uy|lt|ua|ie|ir|ve|kz|ec|rs|sk|py|bg|hk|eu|ee|md|is|my|lv|gt|pk|ni|by|ae|kr|su|vn|cy|am|ke))))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"
    }

for(i in wierdurl){#c(7,22)
  for(c in regexstring[c(15)]) {
    print(paste(i,which(regexstring==c)))
    print(str_extract_all(i,c))
  }
}

-1

এটি সেরা এক।

NSString *urlRegex="(http|ftp|https|www|gopher|telnet|file)(://|.)([\\w_-]+(?:(?:\\.[\\w_-]+)‌​+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?";


-1

এটা ঠিক সহজ।

এই প্যাটার্নটি ব্যবহার করুন: \b((ftp|https?)://)?([\w-\.]+\.(com|net|org|gov|mil|int|edu|info|me)|(\d+\.\d+\.\d+\.\d+))(:\d+)?(\/[\w-\/]*(\?\w*(=\w+)*[&\w-=]*)*(#[\w-]+)*)?

এটি যে কোনও লিঙ্কের সাথে মেলে:

অনুমোদিত প্রোটোকল: HTTP, https এবং ftp t

অনুমোদিত ডোমেন: *। কম, * নেট, *। অর্গ, * .গোভ, * .মিল, * .আইএনটি, * .ইডু, * ইনফো এবং * .এম বা আইপি

অনুমোদিত পোর্টস: সত্য

অনুমোদিত প্যারামিটার: সত্য

অনুমোদিত হ্যাশ: সত্য

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