标签: matcher

Java中的正则表达式,查找开始和结束标记

我试图在HTML文档中查找数据.我不需要一个完整的解析器,因为它只是一个标签之间的数据.

但是,我想检测"选择"标签和其间的数据.

return Pattern.compile(pattern, 
                       Pattern.CASE_INSENSITIVE | Pattern.MULTILINE |
                       Pattern.DOTALL);

/// End right angle bracket left off intentionally:
track_pattern_buf.append("<select");
track_pattern_buf.append("(.*?)");
track_pattern_buf.append("</select");
Run Code Online (Sandbox Code Playgroud)

这是你要使用的'正则表达式'吗?

html java regex matcher

1
推荐指数
1
解决办法
1万
查看次数

如何从Java中的Matcher获得几个正则表达式组?

我有一个Java程序,它执行一些字符串匹配.我正在寻找\d+x\d+在String 中匹配的任何东西.这可以使用PatternMatcher类.但是,要解析String我找到的部分,我必须手动解析String我得到的Matcher.find()Matcher.group().我怎么能告诉Pattern我我正在寻找某种形式的东西(\d+)x(\d+)并让Matcher它们分别归还这些群体?因此,我想要获得两个字符串"1"和"23",而不是字符串"1x23".

java regex matcher

1
推荐指数
1
解决办法
3632
查看次数

java.util.regex.Matcher困惑组

我无法获得正确的正则表达式匹配组.我的代码归结为以下内容:

Pattern fileNamePattern = Pattern.compile("\\w+_\\w+_\\w+_(\\w+)_(\\d*_\\d*)\\.xml");
Matcher fileNameMatcher = fileNamePattern.matcher("test_test_test_test_20110101_0000.xml");

System.out.println(fileNameMatcher.groupCount());

if (fileNameMatcher.matches()) {
    for (int i = 0; i < fileNameMatcher.groupCount(); ++i) {
        System.out.println(fileNameMatcher.group(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

2
test
20110101_0000
Run Code Online (Sandbox Code Playgroud)

它然而:

2
test_test_test_test_20110101_0000.xml
test
Run Code Online (Sandbox Code Playgroud)

有人有解释吗?

java regex matcher regex-group

1
推荐指数
1
解决办法
2876
查看次数

在与量词不匹配后,Java的matcher.find()保留了什么样的状态?

在下面,我希望第二个find()成功,但事实并非如此.为什么?

Matcher matcher = 
    Pattern.compile("\\s*asdf").matcher("apple banana cookie");

// returns false as expected
matcher.find();

// resets groups (that weren't being explicitly being used anyway), but not state.
matcher.usePattern(Pattern.compile("\\s*banana")); 

// returns false, expected true.
System.out.println(matcher.find());
Run Code Online (Sandbox Code Playgroud)

如果量化器从第一个正则表达式中删除(变为简单的"asdf"),则第二个匹配成功.查看Matcher对象会发现在第一个不成功的find()之后存储了某种组信息,尽管我没想到它.Find()应该从头开始(如果没有前一个匹配)或者在上一次成功匹配的索引处开始.UsePattern()应该保留Matcher在输入中的位置,并丢弃组信息(同样,我没有明确使用).

我错过了什么,但我不知道是什么.我怀疑我必须使用lookingAt()并更新区域(例如此示例)来实现它,但我不知道为什么这种方法不起作用.

java regex matcher

1
推荐指数
1
解决办法
341
查看次数

正则表达式"\\ d +"在字符串中找到两次整数:"{10}".匹配器匹配10和0

我使用正则表达式将BitSet normal toString转换为二进制字符串.例如,如果myBitSet.toString()返回{10},它会设置第10位和第0位,但应该只设置第10位.

    ...
    Matcher m = Pattern.compile("(?=(" + "\\d+" + "))").matcher(temp);
    while(m.find()) {
        String test2 = m.group(1);
        answer.setCharAt((2*OpSize -1 - Integer.valueOf(m.group(1))), '1');

    }
    .....
Run Code Online (Sandbox Code Playgroud)

regex matcher bitset

1
推荐指数
1
解决办法
91
查看次数

Java Regexp Matcher

关于regexp的简单问题.我有

String text = "foobar1foobar1";
Run Code Online (Sandbox Code Playgroud)

我需要在第一个之前获得一部分(foobar)当我做这样的事情时:

Pattern date_pattern = Pattern.compile("(.+)1");
Matcher matcher = date_pattern.matcher(text);
matcher.group(1);
Run Code Online (Sandbox Code Playgroud)

但我收到"foobar1foobar".

java regex matcher

1
推荐指数
1
解决办法
178
查看次数

Java替换匹配的正则表达式

对不起,我不得不重新写这个问题,我正在完成它,有人关闭它.他们不善解释为什么我不得不重新发布?请告诉我什么是令人困惑的.

要点:我想用匹配的部分替换正则表达式匹配,所以如果我正则表达式我希望它替换为{hi}如果正则表达式匹配我想要替换为{at}

这真是太棒了看看这两个字母的单词得到了更换后的回报

this <h1>is</h1> awesome look <h1>at</h1> this two letter words get replaced
Run Code Online (Sandbox Code Playgroud)

注意是什么和匹配正则表达式\ b\w\w\b将匹配替换

这是我正在研究的代码...不要判断它没有完成,但我只是有点困惑,并想知道是否有一个更简单的方法.我正在搜索字符串并找到匹配项,然后我将把它转到一个arraylist并替换每一个.问题是我要替换的问题之一是{并且我想用{{}替换它现在看起来这将不断替换括号,因为我继续添加它们...所以我的另一个想法是将它们全部替换掉逐个char by char并添加到一个新StringBuilder对象?

ArrayList<String> replacements= new ArrayList<String>();
String s="::";
s+=command;
Pattern p= Pattern.compile("[!-~]");
Matcher match= p.matcher(this.execution);
while(match.find()){
    replacements.add(match.group());
}
StringBuilder string= new StringBuilder();
for(int i=0;i<this.execution.length();i++){ 
    String a=new String(execution.charAt(i));
    if(...){
        ...
    }
}
s+="::"+this.execution;
Run Code Online (Sandbox Code Playgroud)

java regex matcher replaceall

1
推荐指数
1
解决办法
182
查看次数

模式匹配

我有以下模式匹配器.

 Pattern pat = Pattern.compile("[^a-z][^,.:;]");
Run Code Online (Sandbox Code Playgroud)

如何在其中包含]角色本身?

java regex matcher

1
推荐指数
2
解决办法
405
查看次数

如何设置电子数字的正则表达式中允许的最小和最大位数

我为java应用程序提供了以下Regex表达式:

[\+0-9]+([\s0-9]+)?
Run Code Online (Sandbox Code Playgroud)

如何将上述电话号码的表达限制为最少4位数,最多7位数?我认为这会像将{4,7}添加到表达式中但它不起作用.

有什么建议吗?

基本上我的电话号码可以以+号开头,后跟数字(+004 ......)或仅以数字(004 ......)开头,也可以在任意数字(0 0 4 ...)之间包含空格.

java regex matcher

1
推荐指数
1
解决办法
3542
查看次数

Scala Spec2 Mockito:非原始参数的匹配器:any,isA

我正在写一个如下的模拟对象:

import org.specs2.mock._
import com...MonetaryValue
import com...Voucher
import org.mockito.internal.matchers._

/**
 * The fake voucher used as a mock object to test other components
 */
case class VoucherMock() extends Mockito {
  val voucher: Voucher = mock[Voucher]

  //stubbing
  voucher.aMethod(any(classOf[MonetaryValue])) answers {arg => //some value to be return based on arg} 

  def verify() = {
    //verify something here
  }
}
Run Code Online (Sandbox Code Playgroud)

存根步骤会抛出异常:

 ...type mismatch;
[error]  found   : Class[com...MonetaryValue](classOf[com...MonetaryValue])
[error]  required: scala.reflect.ClassTag[?]
[error]   voucher.aMethod(any(classOf[MonetaryValue])) answers {arg => //some value to be return based on arg} …
Run Code Online (Sandbox Code Playgroud)

arguments scala matcher mockito specs2

1
推荐指数
1
解决办法
3806
查看次数

标签 统计

matcher ×10

regex ×9

java ×8

arguments ×1

bitset ×1

html ×1

mockito ×1

regex-group ×1

replaceall ×1

scala ×1

specs2 ×1