我一直在尝试获取下面这个字符串在:
和,
之间的值
key1:value1,key2:value2
(?<=\:)[^:]*(?=\:)
value1,key2
value1,value2
有帮助吗?
答案 0 :(得分:1)
在[^:]*(?=\:)
部分,您将不匹配:
,后者将与value1,key2
匹配,并且将与之过度匹配。然后,肯定的超前断言成功,因为在其后有一个:
。
要获得介于和之间的值,则不能匹配:
,而不能匹配,
,而不能匹配(?<=:)[^,]+(?=$|,)
,可以断言字符串或逗号的结尾。
(?<=:)
说明
:
断言直接在左边的是[^,]+
,
匹配除(?=$|,)
以外的其他任何字符1倍以上,
断言直接在右边的是字符串的结尾或getHeroes(): Observable<Hero[]> {
// TODO: send the message _after_ fetching the heroes
this.messageService.add('HeroService: fetched heroes');
return of(HEROES);
}
答案 1 :(得分:0)
无需先行或后退:
/:([^,]+),/g
:
,
,
此正则表达式的结果将生成两个捕获组,分别为value1
和value2