为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式在两个 undescores 之间获取单词

正则表达式在两个 undescores 之间获取单词

开满天机 2021-12-10 12:41:09
我有一条线 bla_bla**_**test**_1**023并希望提取之间的单词_和任何下划线后按数字_digit是test在上述的例子。我已经尝试了以下正则表达式,但不幸的是不起作用: [^_ ]+(?=[ _\d])- 它让我在“_digit”之前获得所有单词,而不仅仅是之前的单词_digit
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

这应该对你有用。使用Pattern和Matcher与查找变通。


public static void main(String[] args) {

    String word= "bla_bla_test_1023";

    Pattern p = Pattern.compile("(?<=_)([^_]+)(?=_\\d+)");

    Matcher m = p.matcher(word);

    while (m.find()) {

        System.out.println(m.group());

    }



}

开/关:


测试


查看完整回答
反对 回复 2021-12-10
?
GCT1015

TA贡献1827条经验 获得超4个赞

 [^_]*(?=_\d)

您想匹配除 _ 以外的所有内容,直到找到 _ 后跟一个数字。


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信