我需要帮助创建正则表达式。 以下是两个示例字符串:
/path/to/file.jpg
/path/to/file.type.jpg
分别是我试图抓住:
file.jpg
file.type.jpg
但我想将这三个字符串作为单独的字符串捕获。
file,jpg
file,type,jpg
请注意,我没有捕捉这些时期。 我认为这样的事情可以起作用(不包括新行):
([a-z]+)\.
[([a-z]+)[\.]{1}]?
([a-z]{3})
指导将不胜感激。 我想知道是否有其他修改我需要使用它来正确捕获它。
顺便说一下,上面的表达错误:(
答案 0 :(得分:1)
答案 1 :(得分:1)
你必须使用:
/(\w+)(\.(\w+))?\.(\w+){3,4}\b
然后捕获组1,3和4将是你的:file(1)type(3)和jpg / png(4)
分开的小组:
(\w+)
- 匹配单词字符1或更多(相当于说:{1, }
(\.(\w+))?
- 匹配第3组并使用前面的点,并使整个组可选(?
)(\w+)
- as gr 1 (\w{3,4})\b
- 匹配3个或4个单词字符({3,4}
)并确保在这些字符之后没有其他字符(单词结束 - \b
- !如果支持!)答案 2 :(得分:1)
答案 3 :(得分:1)
我建议你使用模式
\/([^.]+)\.?([^.]+|)\.([^.]+)$
你将有3个组:文件,类型(如果不存在则为空)和扩展名