與this question類似,但差別很小,我仍然需要一些幫助。解析可選部分的正則表達式
目前我有:
'(.*)\[(\d+\-\d+)\]'
如我正則表達式,其匹配任何數目的字符,隨後包含由破折號分開的兩個小數方括號[]中。我的問題是,我希望它也與方括號之間的一個十進制數匹配,甚至可能在方括號之間沒有任何內容。所以:
word[1-5] = match
word[5] = match
word[] = match (not essential)
,並確保
word[-5] = no match
誰能可能指向我在下一步的方向。我目前發現正則表達式是一個猜謎遊戲,儘管我希望能和他們一起變得更好。
你一定要明白,如果你的目標字符串公頃每行有多於一個'[dd-dd]'結構,那麼你的表達式只與最後一個匹配 - '(。*)'快樂地通過所有這些結構到行尾,然後引擎必須回溯到找到最後一個'[dd-dd]'。小心點星! – ridgerunner
我確實:)在這種情況下,行尾的[dd-dd]格式將被剝離並用於確定一個範圍,其前面的任何內容即(。*)組將被視爲成爲「名字」 – PT114