正则表达式用于捕获" _"之间的单词和"。"

时间:2017-06-15 17:51:46

标签: java regex capture

我想用正则表达式找到_和之间的单词。在文件名中。

示例:如果文件名为---- abc_resend.zip

我希望我的模式返回"resend"

我尝试使用以下模式:"\_([a-z]*)\." 结果:_resend

尝试排除以下模式:"(?:\\_)([a-z]*)(?:\\.) 我仍然得到相同的结果:_resend

我做错了什么?请帮忙。

3 个答案:

答案 0 :(得分:1)

问题在于您正在寻找与此特定模式匹配的正则表达式。我不确定你写的是哪种语言,但你想得到这个结果,然后使用某种条带方法从外面删除这两个字符。你会得到这个结果,因为你正在寻找它:下一步是因为你总是知道你会得到什么,使用条带方法去除其余部分。如果您让我知道您正在使用哪种语言,我可以帮助您跟踪具体语法。

答案 1 :(得分:1)

.special character in RegEx,因此如果您想匹配\字符,则需要使用.转义它。试试这个:_([a-z]*)\.

答案 2 :(得分:1)

您可以使用此正则表达式<script type="text/javascript"> $(".middle_toggle").click(function () { $(".middle").slideToggle(20, function() { $(".colapse_bar").toggleClass('middle_colapsed'); $("#colapse_icon").toggleClass("colapse_fix colapse_fix2"); if ($('.middle').is(":hidden")) { var main_height2 = ($(document).height() - 125); $(".main").css('height', main_height2); } if ($('.middle').is(":visible")) { var main_height2 = ($(document).height() - 355); $(".main").css('height', main_height2); } }); }); </script>

使用模式解决您的问题
_(\w+)\.

<强>输出

String str = "abc_resend.zip";
Pattern pattern = Pattern.compile("_(\\w+)\\.");
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {
    System.out.println(matcher.group(1));
}