正则面试题

Johan.
博客专家认证
2012-04-17 05:00:28
<span class=\"level\"><span class=\"textlabel\">任意长字符串,后面有空格 </span>1</span>

上面html中,怎么取字符串中的1,
已知该位置只会出现数字。
...全文
218 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Johan. 2012-04-18
  • 打赏
  • 举报
回复
只需要分别取出7楼HTML里面的3数字就可以了。
谢谢各位了。
cnw168 2012-04-18
  • 打赏
  • 举报
回复
不用那么复杂

Regex rx1 = new Regex("[\\W\\w]*?<span class=\"level\"><span class=\"textlabel\">[\\W\\w]*?</span>(\\d+)</span>[\\W\\w]*");
string str1 = rx1.Replace("内容", "$1");//替换成指定字符

//用[\\W\\w]*?<span class=\"level\"><span class=\"textlabel\">[\\W\\w]*?</span>(\\d+)</span>[\\W\\w]*这句就行了,将它替换成$1就可以了
Johan. 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

C# code

string str = "<span class=\"level\"><span class=\"textlabel\">任意长字符串,后面有空格 </span>1</span>";
Regex num = new Regex(@"(?<=(<span\sclass=""textlabel"").*?(</span>)).*?</span>",RegexOp……
[/Quote]

朋友,需要在7楼的HTML里面取出来才可以。
对不起吖,前面没说清楚。
EnForGrass 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

引用 12 楼 的回复:

引用 11 楼 的回复:

引用 10 楼 的回复:

引用 7 楼 的回复:

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd……
[/Quote]
是可以的,但是习惯写(?is)好看
KeenWon 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 11 楼 的回复:

引用 10 楼 的回复:

引用 7 楼 的回复:

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head……
[/Quote]

写(!si)也行吧
EnForGrass 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 10 楼 的回复:

引用 7 楼 的回复:

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="app……
[/Quote]
i表示忽略大小写,s表示单行模式
正则我只学了一周,学习期间总结的
我总结的http://topic.csdn.net/u/20120228/11/88a6fd52-de02-4c3e-9f97-a1ffe2fbab24.html
KeenWon 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 7 楼 的回复:

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="apple-touch-icon" hr……
[/Quote]

大哥,你前面的(?is)是匹配模式吗?有没有资料发出来看看
EnForGrass 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="apple-touch-icon" href="http://gf1.g……
[/Quote]
你先试试我那个行不行再说,我试了一下行的
KeenWon 2012-04-17
  • 打赏
  • 举报
回复

string str = "<span class=\"level\"><span class=\"textlabel\">任意长字符串,后面有空格 </span>1</span>";
Regex num = new Regex(@"(?<=(<span\sclass=""textlabel"").*?(</span>)).*?</span>",RegexOptions.Singleline);
Match m = num.Match(str);
if (m.Success) {
Response.Write(m.Value);
}


这样试试,新手,不是最优的,但应该能行,在一大段HTML里
q107770540 2012-04-17
  • 打赏
  • 举报
回复
表达能力及逻辑思维能力也是我在面试别人过程中比较看中的一点
Johan. 2012-04-17
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="apple-touch-icon" href="http://gf1.geo.gfsrv.net/cdn68/20da7e6c416e6cd5f8544a73f588e5.png" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn01/9cba508bf487384321a92ee68144e4.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdn81/443dc7a9c57e71bdd94be2afb5d6be.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdn4d/7f5cd54c0fdec17903f8ac4c9e1020.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn6a/525f931477f9f060322ae4f814794b.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdnd3/53de9cb06e2659c056b84c64ffe7ef.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdn7f/4ec99f671704a6cd6fe6887f3685e2.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn3c/1078e92959f3090d99397615abaa67.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdn49/cc7a154f3186f1e5776efeba902bf8.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn0d/cd69be5140eb480c6015f56700f75c.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdncd/7265b48a83720be5745b8c249b072b.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdn4f/d2e0201b5fd0855780de262522fc8d.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdnbd/d754e4c497e93186782db737e05fc8.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn0f/c6cc11701208612c4b2058be0d50d8.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdned/772b2d3c0e4346f2deb93edfcdbdf1.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdnb7/a118fd8a870308fc26713a38a52cf0.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn3a/191b1e4950ccf07fe39a4b339877f7.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn60/5b59e9ae97d557f7ced89d29200cce.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn90/6ede3072b603ddfe67d7537b64be6d.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn07/a5f6217411b85b7587ac0b74065df2.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdnd1/42366c0bd29ce49bb28e55226151af.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdnb2/a50d68dac8dfc5440fe9313223c25b.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdn5b/61bfbe660c957390107a232dd055db.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdnfb/e74ebc8d70274b9e33a8b9796bf1a5.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdncb/e9fc982e12ac3ada43f1f52da11325.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn6c/946a36b07fab1ccadb37905a455c42.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn99/f4996eca461e169934abd888ee3409.css"
media="screen" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="http://gf1.geo.gfsrv.net/cdn39/80f5848e31384cb807818228389547.css" media="screen" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="http://gf3.geo.gfsrv.net/cdnb6/e75a4bb4e9dc0ce3f7f7aac6a9c699.css" media="screen" />
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="http://gf2.geo.gfsrv.net/cdn42/2af7131df7c8210e7cd0bea1f3d9ff.css" media="screen" />
<![endif]-->
<title>Andromeda</title>
</head>
<body id="resources">
<div id="boxBG">
<div id="box">
<div id="links">
<div id="toolLinksWrapper">
</div>
<br class="clearfloat" />
</div>
<div id="inhalt">
<div id="buttonz">
<h2>
資源建築
</h2>
<ul id="building">
<li id="button1" class="on">
<div class="supply1">
<div class="buildingimg">
<a class="fastBuild tipsStandard" title="|升級 金屬礦 至 3 級" href="javascript:void(0);"
onclick="sendBuildRequest('http://uni101.ogame.tw/game/index.php?page=resources&modus=1&type=1&menge=1&token=2a6dba6e36336e12dd094d09cbda3e3f');">
<img src="http://gf2.geo.gfsrv.net/cdndf/3e567d6f16d040326c7a0ea29a4f41.gif" width="22"
height="14" />
</a><a class="detail_button tipsStandard slideIn" title="|金屬礦" ref="1" id="details"
href="javascript:void(0);"><span class="ecke"><span class="level"><span class="textlabel">
金屬礦 </span>2 </span></span></a>
</div>
</div>
</li>
<li id="button2" class="on">
<div class="supply2">
<div class="buildingimg">
<a class="fastBuild tipsStandard" title="|升級 晶體礦 至 2 級" href="javascript:void(0);"
onclick="sendBuildRequest('http://uni101.ogame.tw/game/index.php?page=resources&modus=1&type=2&menge=1&token=2a6dba6e36336e12dd094d09cbda3e3f');">
<img src="http://gf2.geo.gfsrv.net/cdndf/3e567d6f16d040326c7a0ea29a4f41.gif" width="22"
height="14" />
</a><a class="detail_button tipsStandard slideIn" title="|晶體礦" ref="2" id="details"
href="javascript:void(0);"><span class="ecke"><span class="level"><span class="textlabel">
晶體礦 </span>1 </span></span></a>
</div>
</div>
</li>
<li id="button3" class="on">
<div class="supply3">
<div class="buildingimg">
<a class="fastBuild tipsStandard" title="|升級 重氫合成器 至 2 級" href="javascript:void(0);"
onclick="sendBuildRequest('http://uni101.ogame.tw/game/index.php?page=resources&modus=1&type=3&menge=1&token=2a6dba6e36336e12dd094d09cbda3e3f');">
<img src="http://gf2.geo.gfsrv.net/cdndf/3e567d6f16d040326c7a0ea29a4f41.gif" width="22"
height="14" />
</a><a class="detail_button tipsStandard slideIn" title="|重氫合成器" ref="3" id="details"
href="javascript:void(0);"><span class="ecke"><span class="level"><span class="textlabel">
重氫合成器 </span>1 </span></span></a>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="push">
</div>
</div>
</body>
</html>



HTML太长了,删了好多才能发出来。
EnForGrass 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

<span class=\"level\"><span class=\"textlabel\">金屬礦 </span>1</span>

额,,,
谢谢bdmh,您的代码能运行,
是我的问题没能说清楚,这是一个HTML里面的其中一段。
[/Quote]
文本如下,也可以分别取出1,2,3,4.
<span class="level"><span class="textlabel">任意长字<span>符串,后面有空格 </span>1</span>
<span class="level"><span class="textlabel">任意长字<span>符串,后面有空格 </span>2</span>
<span class="level"><span class="textlabel">任意长字<span>符串,后面有空格 </span>3</span>
<span class="level"><span class="textlabel">任意长字<span>符串,后面有空格 </span>4</span>
如果不是这样,请详细给出你的源文本,以及你要获取什么?
Johan. 2012-04-17
  • 打赏
  • 举报
回复
看出来了,
Chinajiyong、bdmh
两位都是高手,是我的问题没说清楚。
Johan. 2012-04-17
  • 打赏
  • 举报
回复
<span class=\"level\"><span class=\"textlabel\">金屬礦 </span>1</span>

额,,,
谢谢bdmh,您的代码能运行,
是我的问题没能说清楚,这是一个HTML里面的其中一段。

EnForGrass 2012-04-17
  • 打赏
  • 举报
回复

string source = "<span class=\"level\"><span class=\"textlabel\">任意长字符串,后面有空格 </span>1</span>";
Regex reg = new Regex(@"(?is)<span[^>]*><span[^>]*>.*?</span>(.*?)</span>");
Match mm = reg.Match(source);
MessageBox.Show(mm.Groups[1].Value);
/*
1
*/
EnForGrass 2012-04-17
  • 打赏
  • 举报
回复
string source = "<span class=\"level\"><span class=\"textlabel\">任意长字符串,后面有空格 </span>1</span>";
Regex reg = new Regex(@"(?is)<span[^>]*><span[^>]*>.*?</span>(.*?)</span>");
Match mm = reg.Match(source);
MessageBox.Show(mm.Groups[1].Value);
bdmh 2012-04-17
  • 打赏
  • 举报
回复

string source = "你得字符串";
Regex reg = new Regex(@"</span>(?<value>[\d]?)</span>");
Match mm = reg.Match(source);
MessageBox.Show(mm.Groups["value"].Value);

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧