我需要幫助計算出RegEx語句以幫助我正確匹配交換機/路由器上的接口。僅匹配包含特殊字符的整個單詞
例:正確的匹配可能是:
Fa1/0, Gig2/0/2, Fa3/0/33/333, G1/0/0:1, Gi0/0.900 etc.
我已經能夠獲得最接近的是:
[fget][a-z]*[0-9]+(?:[\/\.:][0-9]+)+
的問題是,是的Fa1/0/
或Fa1/0a
的Fa1/0
部分也匹配這是不正確的,不應該匹配。
任何人都可以幫助我嗎?
給出字符串:Start Fa1/0/1 Gig2/0 Fa1/0/ Ending
僅匹配:Fa1/0/1
和Gi2/0
限制:不能使用:\s
或' '
(我使用的解析器不允許它)
修改:案例被設置爲不敏感。
附加信息/編輯下面
這實際上是一個正則表達式語法分析程序是在新的SecureCRT 7.3終端應用程序。
目標是實時着色正確的語法,同時從不正確的語法中去除着色。
這就是爲什麼我們不能依賴於^和$標記,因爲你永遠不能確定這個詞將在行的開始或結束。
正確匹配整個單詞將遵循以下格式:接口類型+數字+子接口(可選)。
接口類型:可能是從'F'到FastEthernet的任何東西。其他的前綴包括千兆的'g',以太網的'e'和'十'的't'。
數字:這將遵循模式,然後(重複)。例如:1/2或1/2/3或甚至1/2/3/4/5/6/7/8/10/12在技術上對於這種情況是有效的。
子接口(可選):將採用或的格式。 IE:.900或:123
因此,更多的字符串示例可以是:F1/0/1.900 Gig2/0 Te1/0/0/1:23這些詞可以以任意順序出現並混合很多其他詞。 IE:「Show Int F1/0/0」或「int range fa1/0/1 - 24」
什麼是您使用的語言/工具?提供更多輸入字符串示例。 – 2014-09-06 01:41:54
你可以描述下一個可能的字符,並將你感興趣的內容放在捕獲組中:'(\ b [efgt] [az] * [0-9] +(?:[/ .:] [0-9] +)+)(?: | $)' – 2014-09-06 02:28:23
不幸的是,上面的代碼不會工作,因爲不僅不允許''(空格)也不允許。 – James 2014-09-06 02:37:21