我试图在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)
这是你要使用的'正则表达式'吗?
我有一个Java程序,它执行一些字符串匹配.我正在寻找\d+x\d+在String 中匹配的任何东西.这可以使用Pattern和Matcher类.但是,要解析String我找到的部分,我必须手动解析String我得到的Matcher.find()和Matcher.group().我怎么能告诉Pattern我我正在寻找某种形式的东西(\d+)x(\d+)并让Matcher它们分别归还这些群体?因此,我想要获得两个字符串"1"和"23",而不是字符串"1x23".
我无法获得正确的正则表达式匹配组.我的代码归结为以下内容:
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)
有人有解释吗?
在下面,我希望第二个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()并更新区域(例如此示例)来实现它,但我不知道为什么这种方法不起作用.
我使用正则表达式将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) 关于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".
对不起,我不得不重新写这个问题,我正在完成它,有人关闭它.他们不善解释为什么我不得不重新发布?请告诉我什么是令人困惑的.
要点:我想用匹配的部分替换正则表达式匹配,所以如果我正则表达式我希望它替换为{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) 我有以下模式匹配器.
Pattern pat = Pattern.compile("[^a-z][^,.:;]");
Run Code Online (Sandbox Code Playgroud)
如何在其中包含]角色本身?
我为java应用程序提供了以下Regex表达式:
[\+0-9]+([\s0-9]+)?
Run Code Online (Sandbox Code Playgroud)
如何将上述电话号码的表达限制为最少4位数,最多7位数?我认为这会像将{4,7}添加到表达式中但它不起作用.
有什么建议吗?
基本上我的电话号码可以以+号开头,后跟数字(+004 ......)或仅以数字(004 ......)开头,也可以在任意数字(0 0 4 ...)之间包含空格.
我正在写一个如下的模拟对象:
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)