我試圖發展自己的鏈接語法例如:正則表達式來獲得鏈接,鏈接描述
[this is google|google.com]
我知道怎麼弄(\[(.*?)\]
)方括號之間的文字,但我不確定如何提取單個作品。另外,如果有人想簡單地添加沒有鏈接的方括號(例如[this is google]
),它將不會被檢測爲鏈接。
任何人都可以提供一些方向嗎?我需要訪問這兩個部分。
我試圖發展自己的鏈接語法例如:正則表達式來獲得鏈接,鏈接描述
[this is google|google.com]
我知道怎麼弄(\[(.*?)\]
)方括號之間的文字,但我不確定如何提取單個作品。另外,如果有人想簡單地添加沒有鏈接的方括號(例如[this is google]
),它將不會被檢測爲鏈接。
任何人都可以提供一些方向嗎?我需要訪問這兩個部分。
您可以使用;
s='[this is google|google.com]';
m = s.match(/\[([^|]+)\|([^\]]+)\]/);
然後使用m[1]
和m[2]
的介紹和鏈接。
UPDATE:對於顯示出這兩種正則表達式的方法的性能之間的差異,我創建2個regex101鏈接:
.*?
要查看性能差異點擊Launch regex debugger
左上角的鏈接兩個環節。
你會發現我正則表達式顯示:
+匹配1 - 11成品步驟
但.*?
鏈接顯示此:
+ 1場 - 完成了59步驟
那pro ves指出基於否定的正則表達式比.*
方法更有效率。
PS:如果你點擊+Match 1 - finished in 59 steps
你會看到紅色在第二環節BACKTRACK
消息。
不是這樣嗎?試試這個正則表達式
(\[(.*?)\|?(.*?)\])
謝謝! ...現在很明顯,我已經看到它*失望地搖了搖頭* – SeanWM