我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z
.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/
,然后我有这个权利吗?更重要的是,你怎么看?
我需要有关非贪婪选项的正则表达式匹配的帮助.
匹配模式是:
<img\s.*>
Run Code Online (Sandbox Code Playgroud)
要匹配的文字是:
<html>
<img src="test">
abc
<img
src="a" src='a' a=b>
</html>
Run Code Online (Sandbox Code Playgroud)
此表达式匹配从<img
最后到的所有文本>
.我需要它与>
初始后遇到的第一个匹配<img
,所以在这里我需要得到两个匹配而不是我得到的匹配.
我尝试了所有非贪婪的?
组合,没有成功.
我需要正则表达式中的逻辑AND.
就像是
杰克和詹姆斯
同意以下字符串
'你好杰克在这里是詹姆斯 '
"你好詹姆斯在这里是杰克 "
我正在尝试使用正则表达式将字符串分成两部分.字符串格式如下:
text to extract<number>
Run Code Online (Sandbox Code Playgroud)
我一直在使用(.*?)<
,<(.*?)>
哪个工作正常,但在阅读了一点regex之后,我才开始想知道为什么我需要?
表达式中的.我通过这个网站找到它们之后才这样做,所以我不确定它们之间的区别.
我正在尝试创建一个正则表达式来根据这些条件验证用户名:
_username
/ username_
/ .username
/ username.
).user_.name
).user__name
/ user..name
).这就是我到目前为止所做的事情; 听起来它强制执行所有标准规则但是第5条规则.我不知道如何添加第五条规则:
^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$
Run Code Online (Sandbox Code Playgroud) 来自Pattern
javadocs:
Greedy quantifiers: X? X, once or not at all X* X, zero or more times X+ X, one or more times X{n} X, exactly n times X{n,} X, at least n times X{n,m} X, at least n but not more than m times Reluctant quantifiers: X?? X, once or not at all X*? X, zero or more times X+? X, one or more times X{n}? X, exactly n times X{n,}? X, at least n times X{n,m}? X, …
我试图获得匹配的最后结果,而不必循环通过.find()
这是我的代码:
String in = "num 123 num 1 num 698 num 19238 num 2134";
Pattern p = Pattern.compile("num '([0-9]+) ");
Matcher m = p.matcher(in);
if (m.find()) {
in = m.group(1);
}
Run Code Online (Sandbox Code Playgroud)
这将给我第一个结果.我怎样才能找到最后一场比赛,而不是通过潜在的巨大名单?
我对这个问题有些困难.我需要删除包含在波浪括号中的所有数据.
像这样:
Hello {{world of the {{ crazy}} {{need {{ be}}}} sea }} there.
Run Code Online (Sandbox Code Playgroud)
变为:
Hello there.
Run Code Online (Sandbox Code Playgroud)
这是我的第一次尝试(我知道这很糟糕):
while 1:
firstStartBracket = text.find('{{')
if (firstStartBracket == -1):
break;
firstEndBracket = text.find('}}')
if (firstEndBracket == -1):
break;
secondStartBracket = text.find('{{',firstStartBracket+2);
lastEndBracket = firstEndBracket;
if (secondStartBracket == -1 or secondStartBracket > firstEndBracket):
text = text[:firstStartBracket] + text[lastEndBracket+2:];
continue;
innerBrackets = 2;
position = secondStartBracket;
while innerBrackets:
print innerBrackets;
#everytime we find a next start bracket before the ending add 1 to inner …
Run Code Online (Sandbox Code Playgroud) 我正在尝试理解以下正则表达式量词(这只是一个示例性令牌):
a{n}?
Run Code Online (Sandbox Code Playgroud)
问号如何影响上述表达式的匹配?它与以下内容有何不同?
a{n}
Run Code Online (Sandbox Code Playgroud)
我本来期望的模式aa{1}?a
同时匹配aaa
和aa
为例子.虽然它匹配aaa
,aa
是不是匹配.模式a(a{1})?a
确实匹配两者,所以括号确实在这里有所作为.
注意:正则表达式中的msdn文章Quantifiers表示:
{n}量词恰好与前一个元素匹配n次,其中n是任意整数.
因为{n}?
,它增加了以下内容,而不是过于有用的部分:
它是贪婪量词{n} +的懒惰对应物.
我一直在查找正则表达式教程试图了解它们并且正在享受此链接中的教程直到这个问题:http://regexone.com/lesson/12
我似乎无法弄清楚"匹配"和"捕获"之间的区别是什么.我写的任何内容似乎都没有选择"Capture"部分下的文本(甚至不是.*
).
编辑:以下是教程让我感到困惑的例子:(.* (.*))
被认为是正确的而(.* .*)
不是.这是教程的问题还是我不理解的东西?