Scanario捕獲匹配組
我必須抓住從組成串子串的字符串。 匹配條件:
字符串開始與「SECTION1:」
捕獲串可以是一個空白分隔或字母數字值
的破折號分開的列表中,如果所捕獲的字符串與結束特定後綴('-xx'),從捕獲的字符串中排除後綴。
實例
SECTION1:地老虎:部分1個匹配,搶 '地老虎'
SECTION1:地老虎ζ電:部分1個匹配,搶 '地老虎ζ電'
第1部分:ypsilon-zeta:第1部分匹配,抓住'ypsilon-zeta'
SECTION1:地老虎-XX:部分1個匹配,搶 '地老虎',排除 '-xx'
SECTION1:地老虎的ζ-XX:部分1個匹配,搶 '地老虎ζ電',排除'-xx'
SECTION1:地老虎-ζ電-XX:部分1個匹配,搶 '地老虎-ζ電',排除 '-xx'
第2節:地老虎:部分2不匹配
解決方案到目前爲止
^section1:([a-zA-Z0-9\- ]+)(\-xx)?$
的想法是讓第1組,而第2組是可選的。 Demo。
問題
不幸的是,後綴1組定義相匹配,因爲它是一個字母串用破折號。所以得到的捕獲字符串不會排除後綴。
任何線索?
很好完成:'(| -xx)' – dawg