پیدا کردن هشتگ در متن با regex

برای پیدا کردن هشتگ در متن با regex از الگو زیر استفاده میشود. با استفاد از یک replace ساده میتوان لینک دهی به هشتگ را بنویسید.

Rich (BB code):
/#(\w+)/
 
آخرین ویرایش توسط مدیر:

azam

عضو انجمن
اگه بخواید کارکتر های زبان فارسی هم شناسایی کنه باید از الگو زیر استفاده کنید هر چند بار هم وجود داشته باشه پیدا میکنه:

کد:
(?:((?<=[\s\W])|^)[#](\w+|[^#]|$))
 

pacholl

تازه وارد
بله، درست است. برای پیدا کردن هشتگ در متن با regex از الگو زیر استفاده میشود:
\b#[a-zA-Z0-9_]+\b​
این الگو تمام رشته‌هایی را که با کاراکتر # شروع می‌شوند و فقط شامل حروف الفبای انگلیسی، اعداد و کاراکتر _ هستند، پیدا می‌کند.
برای لینک دهی به هشتگ می‌توان از یک replace ساده استفاده کرد. به عنوان مثال، اگر می‌خواهیم هشتگ #سلام را به لینک https://twitter.com/hashtag/سلام تبدیل کنیم، می‌توانیم از کد زیر استفاده کنیم:
Python
import re

def link_hashtag(text):
return re.sub(r"\b#[a-zA-Z0-9_]+\b", r"https://twitter.com/hashtag/\1", text)​

print(link_hashtag("سلام #سلام"))
خروجی این کد عبارت زیر خواهد بود:
سلام https://twitter.com/hashtag/سلام
البته، می‌توان این کد را به صورت زیر نیز نوشت:
Python
import re

def link_hashtag(text):
return text.replace(r"\b#[a-zA-Z0-9_]+\b", r"https://twitter.com/hashtag/\1")​

print(link_hashtag("سلام #سلام"))
این دو کد دقیقاً یکسان هستند.
 


🔴 لینک های مفید: شبیه ساز منظومه شمسی , استخاره با قرآن , فال حافظ آنلاین ,
میزبانی شده توسط سرورهای قدرتمند افیکس هاست

بالا