完整的字符串语法是:" db:server:port"
服务器和端口是可选的,即可以包含部分字符串,例如:
分贝
或
分贝:服务器
尝试使用:
(.*):?(.*)?:?(.*)?
请告知。
答案 0 :(得分:4)
给这个人一个机会:
([^:]*?):?([^:]*?):?([^:]*?)$
不确定您使用的语言是什么,因此可能无效。
示例:http://regex101.com/r/eQ6bF0
请注意为全局/多行匹配设置的示例 - 请注意,如果您不使用正确的修饰符,这将匹配换行符。
答案 1 :(得分:1)
您没有指定我能看到的语言,因此可能会有不同的具体答案,但基本问题是。*将匹配“:”字符。这意味着第一个术语将吸入整个字符串。我会使用([^:] *)而不是(。*)。
答案 2 :(得分:0)
你可以试试这个:
([^:]+)(?::([^:]+)(?::([^:]+))?)?
答案 3 :(得分:-1)
我认为这就是你要找的东西:
(db|:server|:port)
将匹配任何和所有这些:
db:server:port
db
db:server
工作示例: