2f34435-something.jpg
4t44234-something.jpg
5465g67-something.jpg
我上面有3个字符串,没有使用拆分,如何在破折号前获取正则值?虽然字符串的长度不一致..
答案 0 :(得分:2)
一个选项是匹配字符串开头的一个或多个非短划线字符:
^[^-]+
^
- 表示字符串开头的锚点[^-]
- 字符集匹配所有非破折号字符。+
- 一次或多次出现非短划线字符。例如:
'2f34435-something.jpg'.match(/^[^-]+/);
// ["2f34435"]
使用.split()
方法,您只需要检索第一个匹配项:
'2f34435-something.jpg'.split('-')[0];
// "2f34435"
答案 1 :(得分:1)
你可以使用......
/^(.+?)-/gm
将捕获所有3个(或尽可能多的)
您可以在此处查看https://regex101.com/r/gD5sU2/2
如果你得到 - 在文件名的其余部分......
,这也会处理如: -
2f34435-something-else.jpg
4t44234-something.jpg
5465g67-something.jpg
答案 2 :(得分:0)
([a-z0-9]+)-[a-z0-9]+.jpg
匹配每个字符串,第一组返回的字符串将与短划线前的文本匹配。
答案 3 :(得分:0)