2017-05-30 80 views
1

我有以下數據如何使用Regex排除字符串?

May 18 22:15:04 172.24.11.74 "abc","5","0",........

我想捕捉只有ABC它可以是任何東西(ABC,BCD,AAA級,也可以是空的),所以我想忽略5月18日22時15分04秒172.24.11.74。在立即匹配之後,它應該停止。因此,簡單地說,我想匹配第一個「」之間的所有內容。請幫助我瞭解如何實現它。我嘗試以下

(?<=")([\w\s]+)(?=")

它工作正常,只有當第一個雙引號有一定的價值。但是當它是空白時,它會進一步移動並捕獲雙引號中的下一個值。例如,對於下面的消息,它抓住了5

May 18 22:15:04 172.24.11.74 "","5","0"

我希望我和我的要求明確。

回答

1

我想你已經快到了。

如果通過添加一個?背後使組中間可選的,它匹配即使有雙引號之間沒有任何東西:

(?<=")([\w\s]+)?(?=")

或者你可以匹配中間部分*倍,而不是的+倍,這意味着一次或多次,並通過這一點,如果部分是空的不匹配:

(?<=")([\w\s]*)(?=")

+0

真棒感謝隊友... – user3332404

相關問題