有关正则表达式的问题 急,半小时结贴。

jxcomet 2009-04-28 05:06:50
有一个正则表达式是这样的 {align= ?((?:\d+\.?\d*)|(?:[^\s;}]+))}
从这个sting里
<TD vAlign=top align=left width=189 height=38><FONT face=Arial color=black size=2>This is textbox 2. It has TextAlign Left.</FONT></TD>

取到align=left

但是现在string有小的改变
<TD height=38 vAlign=top width=189 align=left><FONT color=black size=2 face=Arial>This is textbox 2. It has TextAlign Left.</FONT></TD>

结果就变成了align=left><FONT

也就是说,我要正则表达式不仅能判断空白符结尾,也要能判断以字符>结尾.
...全文
74 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxcomet 2009-04-29
  • 打赏
  • 举报
回复
自己的方案和4楼同学的方案一样,经验证没有问题....

再次感谢大家 :)
jxcomet 2009-04-29
  • 打赏
  • 举报
回复
不好意思,昨天自己研究出来了,给了答案的都给分.....

多谢大家捧场~
HDNGO 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wackyboy 的回复:]
引用 9 楼 wackyboy 的回复:
引用 6 楼 HDNGO 的回复:
引用 3 楼 wackyboy 的回复:
C# code@"align=['""]?[^'""\s>]+['""]?"//双引号


这样在忽略大小写的时候会把vAlign=top搞进去的~

呵呵 是得加上单词边界 3Q!!

vAlign 这是干什么大阿??
[/Quote]

align是横着怎么摆~
valign是竖着怎么摆~
wackyboy 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wackyboy 的回复:]
引用 6 楼 HDNGO 的回复:
引用 3 楼 wackyboy 的回复:
C# code@"align=['""]?[^'""\s>]+['""]?"//双引号


这样在忽略大小写的时候会把vAlign=top搞进去的~

呵呵 是得加上单词边界 3Q!!
[/Quote]
vAlign 这是干什么大阿??
wackyboy 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 HDNGO 的回复:]
引用 3 楼 wackyboy 的回复:
C# code@"align=['""]?[^'""\s>]+['""]?"//双引号


这样在忽略大小写的时候会把vAlign=top搞进去的~
[/Quote]
呵呵 是得加上单词边界 3Q!!
zzxap 2009-04-28
  • 打赏
  • 举报
回复
接分
HDNGO 2009-04-28
  • 打赏
  • 举报
回复
Regex r = new Regex(@"(?<=\b)align=['""]?\w+['""]?", RegexOptions.IgnoreCase);
string s = "<TD height=38 vAlign=top width=189 align=left> <FONT color=black size=2 face=Arial>This is textbox 2. It has TextAlign Left. </FONT> </TD>";
Console.WriteLine(r.Match(s));
HDNGO 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wackyboy 的回复:]
C# code@"align=['""]?[^'""\s>]+['""]?"//双引号
[/Quote]

这样在忽略大小写的时候会把vAlign=top搞进去的~
HDNGO 2009-04-28
  • 打赏
  • 举报
回复
(?<=\b)align=['""]?\w+['""]?
十八道胡同 2009-04-28
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Regex r = new Regex(@"align=?((?:\d+\.?\d*)|(?:[^\s;>}]+))");
string s="<TD height=38 vAlign=top width=189 align=left> <FONT color=black size=2 face=Arial>This is textbox 2. It has TextAlign Left. </FONT> </TD>";
Console.WriteLine(r.Match(s));

}
}
}



align=left
Press any key to continue . . .
wackyboy 2009-04-28
  • 打赏
  • 举报
回复

@"align=['""]?[^'""\s>]+['""]?" //双引号

十八道胡同 2009-04-28
  • 打赏
  • 举报
回复
先顶,去实验
wackyboy 2009-04-28
  • 打赏
  • 举报
回复

@"align=['"]?[^'"\s>]+['"]?"

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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