سلام دوستان در این تاپیک ، کد استخراج کردن کلمه کلیدی جستجوشده از آدرس URL در سی شارپ رو براتون آماده کردم.
به طور مثال اگر آدرس url ما این باشد:
خروجی برنامه به این صورت است :
learn c sharp programming
استخراج کردن کلمه کلیدی جستجوشده از آدرس URL در سی شارپ :
public string getSearchKeywords(string strQuery)
{
string result = "";
string pattern = @ "\b\w*p=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*q=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*qs=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*" +
@ "|\b\w*encquery=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*k=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\\b\\w*qt=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*" +
@ "|\b\w*query=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*rdata=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*search_word=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*" +
@ "|\b\w*szukaj|terms=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\\b\\w*text=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*wd=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*words=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*";
foreach(Match m in Regex.Matches(strQuery, pattern))
{
// collect all text
if ((m.ToString().IndexOf('q') == 0 && m.ToString().Contains("q=")) | (m.ToString().IndexOf('p') == 0 && m.ToString().Contains("p=")) |
(m.ToString().IndexOf("encquery") == 0 && m.ToString().Contains("encquery=")) | (m.ToString().IndexOf("rdata") == 0 && m.ToString().Contains("rdata=")) |
(m.ToString().IndexOf("search_word") == 0 && m.ToString().Contains("search_word=")) | (m.ToString().IndexOf("szukaj|terms") == 0 && m.ToString().Contains("szukaj|terms=")) |
(m.ToString().IndexOf("text") == 0 && m.ToString().Contains("text=")) | (m.ToString().IndexOf("wd") == 0 && m.ToString().Contains("wd=")) | (m.ToString().IndexOf("words") == 0 && m.ToString().Contains("words=")))
{
{
string result = "";
string pattern = @ "\b\w*p=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*q=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*qs=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*" +
@ "|\b\w*encquery=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*k=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\\b\\w*qt=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*" +
@ "|\b\w*query=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*rdata=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*search_word=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*" +
@ "|\b\w*szukaj|terms=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\\b\\w*text=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*wd=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*|\b\w*words=[a-zA-Z0-9%~@#$^*()_+=[\]{}|\\,.?: -]*";
foreach(Match m in Regex.Matches(strQuery, pattern))
{
// collect all text
if ((m.ToString().IndexOf('q') == 0 && m.ToString().Contains("q=")) | (m.ToString().IndexOf('p') == 0 && m.ToString().Contains("p=")) |
(m.ToString().IndexOf("encquery") == 0 && m.ToString().Contains("encquery=")) | (m.ToString().IndexOf("rdata") == 0 && m.ToString().Contains("rdata=")) |
(m.ToString().IndexOf("search_word") == 0 && m.ToString().Contains("search_word=")) | (m.ToString().IndexOf("szukaj|terms") == 0 && m.ToString().Contains("szukaj|terms=")) |
(m.ToString().IndexOf("text") == 0 && m.ToString().Contains("text=")) | (m.ToString().IndexOf("wd") == 0 && m.ToString().Contains("wd=")) | (m.ToString().IndexOf("words") == 0 && m.ToString().Contains("words=")))
{