我正在努力撰寫正確的正則運算式以匹配下面的資料。我想捕獲“Focus Terminal”及其可選引數“NYET”。如何重寫我不正確的正則運算式?
user:\/\/(.*)(?:=(.* ))?
我也嘗試過但失敗了:
user:\/\/(.*)=?(?:(.* ))?
樣本資料
* user://Focus Terminal=NYET
* user://Focus Terminal
uj5u.com熱心網友回復:
您可以使用
user:\/\/(.*?)(?:=(.*))?$
請參閱正則運算式演示。
詳情:
user:\/\/- 一個user://字串(.*?)- 第 1 組:除換行符之外的任何零個或多個字符盡可能少(?:=(.*))?- 一個可選的非捕獲組,與 a 匹配=,然后盡可能多地將除換行符之外的任何零個或多個字符捕獲到第 2 組中$- 字串結束。
uj5u.com熱心網友回復:
作為替代方案,您可以使用否定字符類,不包括匹配第一個捕獲組的換行符或等號。
user:\/\/([^=\n]*)(?:=(.*))?
解釋
user:\/\/匹配user://([^=\n]*)捕獲組 1=,匹配除換行符以外的可選字符(?:=(.*))?可以選擇匹配并捕獲第2 組=中的其余行
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517298.html
標籤:正则表达式
