原文連線
源於本部落格開發實現需要
在首頁列表需要對文字進行擷取,需要擷取第一張markdown 語法的url。
在文章詳情頁以及關於文章展示的頁面。需要對文章內容進行擷取。填充head
description。利於seo優化
markdown 是一種可以使用普通文字編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文字內容具有一定的格式。
真實場景以及功能需求
文章編寫
文章列表預覽
頭部描述擷取
需要做的事情是將文章markdown 語法的字串,對特定的語句進行過濾。只顯示文章正文部分
文章編寫存入資料庫是字串型別
在訪問某篇文章後台會去資料庫中取對應的文章資料。
然後通過匹配將markdown 語法的字串轉義成html元素字元渲染輸出
'# 一級標題\r\n## 二級標題\r\n##### 五級標題\r\n- 列表第一項\r\n- 列表第二項\r\n1. 有序列表第一項\r\n2. 有序列表第
現在需要做的是將這些字元去掉不想要的,提取內容部分
在使用正規表示式解析 markdown 語法之前,我們要先對正規表示式的規則有乙個基本的認識,下面我整理了一張正規表示式語法對照表。
正規表示式預定義類:字元
含義.除了回車符和換行符之外的所有字元,等價於[^\r\n]
\d數字字元,等價於[0-9] digit
\d非數字字元,等價於[^0-9]
\s空白符,等價於[\t\n\x0b\f\r] space
\s非空白符,等價於[^\t\b\x0b\f\r]
\w單詞字元(字母,數字,下劃線),等價於[a-za-z_0-9] word
\w非單詞字元,等價於[^a-za-z_0-9]
邊界字元
含義^以***開始
$以***結束
\b單詞邊界
\b非單詞邊界
量詞字元
含義?出現零次或一次(最多出現一次)
+出現一次或多次(至少出現一次)
*出現零次或多次(任意次)
出現n次
出現n到m次
至少出現n次
標題(表示以乙個或多個「#」開頭的字串,並且「#」之後有0個或以上的字元,如:「### **標題」)。
^
(#+)(.
*)
鏈結 (在 markdown 語法中鏈結的表示形式為[鏈結](url)
。)。
/\[[\s\s]*?\]\([\s\s]*?\)/g
解釋:
匹配[
符 開始
緊接著[\s\s]範圍類 空白符或者非空白符都可以的類。
*
代表出現0次或者無限次
?
非貪婪模式
讓正規表示式盡可能少的匹配,也就是說一旦匹配成功匹配不再繼續嘗試,就是非貪婪模式。
做法很簡單,在量詞後面加上?即可。
斜體(表示以乙個 * 或者 _ 開頭並結尾(\1表示規則和第乙個集合相同),中間包含0個或多個字元的字串)。
(\\*
|_)(.*
?)\\1
!\\[
[^\\]
]+\\]\\(
[^\\)
]+\\)
粗體(同斜體)
(\\*\\*
|__)(.
*?)\\1
刪除線(刪除線)
\\~\\~(.
*?)\\~\\~
引用塊
\n
(>
|\\>)(.*)
內聯**塊
`[^`](
.*?)`
分割線
^
-+$
*```*包圍的**塊
``
`([\\s\\s]*?)`
``[\\s]
?
無序列表
^
[\\s]*[
-\\*\\+]+
(.*)
有序列表
^
[\\s]*[
0-9]
+\\.(.
*)
function
abstractfn
(res)
else
[^`](.*?)`/g,''
)//全域性匹配內聯**塊
.replace
(/```([\s\s]*?)```[\s]*/g,''
)//全域性匹配**塊
.replace
(/\~\~(.*?)\~\~/g,''
)//全域性匹配刪除線
.replace
(/[\s]*[-\*\+]+(.*)/g,''
)//全域性匹配無序列表
.replace
(/[\s]*[0-9]+\.(.*)/g,''
)//全域性匹配有序列表
.replace
(/(#+)(.*)/g,''
)//全域性匹配標題
.replace
(/(>+)(.*)/g,''
)//全域性匹配摘要
.replace
(/\r\n/g,""
)//全域性匹配換行
.replace
(/\n/g,""
)//全域性匹配換行
.replace
(/\s/g,""
)//全域性匹配空字元;
return str.
slice(0
,155);
}}
Python 正規表示式學習(二)正規表示式語法
一,單一字元匹配 1 匹配任意字元 import re res re.match r a.abcd print res.group 列印結果 abc一點.表示匹配任意的字元。上面的 表示匹配a後面的任意兩個字元。必須從a開始。若寫成 b.則會發生錯誤。2 匹配指定字元 如 0 9a za z 表示 ...
正規表示式解析
正規表示式,又稱正規表示式,常規表示式,是使用單個字串來描述.匹配一系列符合某個句法規則的字串,在很多文字編輯器中,正規表示式通常被用來檢索.替換那些符合某個模式的文字.正規表示式的語法可以自行搜尋,通常分為一下幾個方面 1 字元 可以使用普通字元匹配,例 a 使用預定義字元表示給定範圍中的某個字元...
正規表示式解析
string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...