【发布时间】:2019-09-18 12:50:32
【问题描述】:
我试图在最后一个正斜杠和一个点之间提取一个特定的字符串,但没有成功。我尝试了这个解决方案:R regex for everything between LAST backslash and last dot
以下是完整字符串的示例:
48494,Test,0000,Color,,,htps://url/test/testing/bb/1/dim/<strong>green</strong>.png
我想提取"green",它总是在最后一个斜杠和最后一个点之间。我还尝试了以下正则表达式:
([^\/]+$)
但是这个在反斜杠之后选择了 everything。我想删除最后一个点之后的所有内容,以便只选择颜色。
编辑:这个问题与Get Filename from URL and Strip File Extension 不同,因为我正在寻找一个通过匹配方法而不是替换来使用的正则表达式。
我不能使用replace,因为整个系统都准备使用匹配运算符并且无法更改,因为对于使用正则表达式和匹配的其他场景已经存在很多规则。引擎使用匹配,而不是替换。
【问题讨论】:
-
stackoverflow.com/a/43638372/3832970 可能会起作用。那里还有其他类似的解决方案。
-
将 R 答案从 the post you linked to 转换为 JS:
s.replace(/.*\/|\..*/g, '') -
谢谢@WiktorStribiżew 几乎就在那里,它选择了最后一个反斜杠和 .png 的最后一部分的所有内容,2 个匹配项,我想要里面的东西,绿色,所以也许否定它?跨度>
-
什么意思?
"htps://url/test/testing/bb/1/dim/green.png".replace(/.*\/|\..*/g, '')= >green -
重要的是一开始就提到不能修改代码。试试
/[^\/]+(?=\.[^\/.]*$)/
标签: javascript regex filenames