我不知道如何捕捉字符串中的可选模式。
要解析此字符串:
Dalvik/1.6.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P)
我使用的模式正是我所需要的:
/^([^\/\s]*)\/([^\s]*)(\s\(([^()]*|\([^()]*\)*)\))?/
# returns
# 1. Dalvik
# 2. 1.6.0
# 3. (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P)
# 4. Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P
但是这个字符串可以多次出现第一个模式,例如:
Bonobo/1.0.3; Multipass/1.5.2; Dalvik/1.6.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P)
我想得到的是:
# 1. Bonobo
# 3. 1.0.3
# 4. Multipass
# 5. 1.5.2
# 6. Dalvik
# 7. 1.6.0
# 8. (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P)
# 9. Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P
但经过多次尝试,我无法弄明白。
有什么想法吗?
非常感谢。
答案 0 :(得分:0)