定期的な基本的な文法
正規表現(正規表現)チョムスキー3型文法の文字列の条件に合致する単一の複素数パターン文字列です。
数学的定義:
シリアルABが設定表し{αβ|α∈A、β ∈B}
| Bは集合{α∈Aまたはαα意味|並列Aを ∈B}
{B}サブセットA *は複素セットを表すが= { ε、A、B、AA、 AB、BB ...}
正規表現は、この定義に有限オートマトンを解決することができます。
繰り返します
- '*':[0、∞]
- '+':[1、∞]
- {A、B}の繰り返しからのB倍の範囲
エスケープ
他のプログラミングの概念では、エスケープは、2つの効果があります。
- 特殊文字は、通常、所定の文字に予約さ
など「」と『エスケープを達成するために『』を使用して、特殊な記号に規則的である』、ABは『AB』を表しなど、* bは『を表す Bを』 - 文字の特別な意味を表すために、通常の文字は、変換
\ dの「数を表し、「それは後に」等「D」使用」として
貪欲&レイジー・モード
- 。* B列bの開始から終了までのように多くの試合を表します
- 。*?B列bの開始から終了までに可能な一致のように少しを表します
Javascriptのシーン
文法
//1. string 操作的字符串
//2. regex 正则表达式
//3. replacement 需要替换的效果
string.replace(regex,replacement)
//demo— /g表示全局替换
str = str.replace(/raw/g,"dealed");
問題
APIを直接裏庭のブログのコンテンツを呼び出すだけのHTML構文解析コンポーネントを直接使用することはできないことのネイティブ反応します。
JSは、通常の処理を使用することができます。
解きます
要件:<a href="url"><img src = "url" border="0" onload="..."/></a>
交換してください<img src="url"/>
写真の決意
//$1表示第一个参数(.*?)匹配到的部分
function ConvertPicture(raw){
let result = raw.replace(/<a href=(.*?) target="_blank"><img(.*?)<\/a>/g,'<img src=$1 alt="图片"/>');
return result;
}
ハイパーリンクの決意
また、他の変換に似ています。
要件:<a href="http://www.hao123.com" target="_blank">测试超链接</a>
変換[测试超链接]("url")
function ConvertHref(raw){
let result = raw.replace(/<a href=(.*?) target="_blank">(.*?)<\/a>/g,'["$2"]("$1")');
return result;
}