我正在尝试创建一个解析产品属性的正则表达式,例如:
" led遇到了interne weerstand 1 / 4w 1k"会解析成:
[0] met interne weerstand
[1] 1/4w
[2] 1k
到目前为止,我有这个正则表达式:
/(?:met .*)|(?:(?:\d+\/)?\d+\w ?)|(?:\d+ ?in ?\d+)/
我正试图将1/4w 1/4s 1/4w 1/4d 3 in 1 1% led met interne weerstand 1/4w
与之匹配。
它没有像我希望的那样工作:
array (size=6)
0 =>
array (size=1)
0 => string '1/4w ' (length=5)
1 =>
array (size=1)
0 => string '1/4s ' (length=5)
2 =>
array (size=1)
0 => string '1/4w ' (length=5)
3 =>
array (size=1)
0 => string '1/4d ' (length=5)
4 =>
array (size=1)
0 => string '3 in 1' (length=6)
5 =>
array (size=1)
0 => string 'met interne weerstand 1/4w' (length=26)
Met interne weerstand也匹配1 / 4w,但我希望1 / 4w成为一个单独的匹配。
我该怎么做?
答案 0 :(得分:1)
(?:met .*?(?=(?:(?:\d+\/)?\d+\w ?)|$))|(?:(?:\d+\/)?\d+\w ?)|(?:\d+ ?in ?\d+)
^^
non greedy
方法可以为您提供前瞻。参见演示。