我找不到类似的以前问过的问题。我需要一个正则表达式来获取倒数第二个特殊字符之前的所有数据。
例如:
""
我只需要.col-xs-12.right-content-block
.faces.slider-team-slick-js
- @development.each do |developer|
.col-xs-4
.flex-item.animated.fadeInDown.rectangle-and-text-hover.img-face style="background-image: url(#{image_path(developer.image_url)});">
.text
p.name = developer.name
.horizontal-line
p.specialization= developer.title
。
我知道如何使用suite 1, street 1, zip city, country
仅在最后一个特殊字符之前获取数据,而不是倒数第二个特殊字符。
答案 0 :(得分:3)
您可以使用以下正则表达式,第一个捕获组将具有所需的子字符串:
(.*)(?:,[^,]*){2}$
演示:https://regex101.com/r/AWpsL3/1
或者,如果您使用的工具确实支持捕获组,则可以将以下正则表达式与超前配合使用:
.*(?=(?:,[^,]*){2}$)
答案 1 :(得分:1)
答案 2 :(得分:0)
取决于正则表达式的实现,它可能不支持环视(上述解决方案使用的环视)。解决方法是对定界符(在本例中为逗号)执行字符串拆分。然后执行前两个元素的字符串连接。
mystr = 'suite 1, street 1, zip city, country';
parts = mystr.split(',');
return parts[0]+','+parts[1];
答案 3 :(得分:0)
尝试(([ \w]+,?){2})(?=,)
并且不要使用全局标志(在第一次比赛后不会返回)