Regex 正则表达式可选递归模式
我不知道如何捕捉字符串中的可选模式 要分析此字符串,请执行以下操作: Dalvik/1.6.0 Linux;U安卓4.4.4;Nexus 5构建/KTU84P 我使用的模式正是我所需要的:Regex 正则表达式可选递归模式,regex,Regex,我不知道如何捕捉字符串中的可选模式 要分析此字符串,请执行以下操作: Dalvik/1.6.0 Linux;U安卓4.4.4;Nexus 5构建/KTU84P 我使用的模式正是我所需要的: /^([^\/\s]*)\/([^\s]*)(\s\(([^()]*|\([^()]*\)*)\))?/ # returns # 1. Dalvik # 2. 1.6.0 # 3. (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) # 4.
/^([^\/\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
但是这个字符串可以有多次第一个模式,比如:
倭黑猩猩/1.0.3;多通道/1.5.2;Dalvik/1.6.0 Linux;U安卓4.4.4;Nexus 5构建/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
但经过多次尝试后,我还是想不出来
有什么想法吗
非常感谢。您需要对重复的字符串使用\G锚点,即由相同模式匹配的字符串
\G\s*([^\/\s]*)\/([^\s;]*);?(\s\(([^()]*|\([^()]*\)*)\))?
你用什么语言?