正则表达式如何匹配可能包括任意长度的任意空白的任意字符串(最短匹配)

13880079673 2004-09-14 12:07:23
入题
我的写法是:"(\s.*?)",但是不正确
...全文
4486 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
13880079673 2004-09-27
  • 打赏
  • 举报
回复
正确的是(.*?)
Imfish 2004-09-17
  • 打赏
  • 举报
回复
用它
([\s\S\r\n\.]*?)
暗石绿 2004-09-14
  • 打赏
  • 举报
回复
\s*
yellowhwb 2004-09-14
  • 打赏
  • 举报
回复
什么意思??看不明白!
khpcg 2004-09-14
  • 打赏
  • 举报
回复
s.*
yellowhwb 2004-09-14
  • 打赏
  • 举报
回复
^<Send_Address\s*>(.|\n)*<\/Send_Address>$
应该也行,你试试
yellowhwb 2004-09-14
  • 打赏
  • 举报
回复
^<Send_Address\s*>(\s|\S)*<\/Send_Address>$
13880079673 2004-09-14
  • 打赏
  • 举报
回复
我看书上说[.\n]可以表示包括\n在内的任意字符,但是我把上面的.换成[.\n]还是不对
lhcoolhacker 2004-09-14
  • 打赏
  • 举报
回复
.{0,}
13880079673 2004-09-14
  • 打赏
  • 举报
回复
string s =
"<Send_Address >\n\r <DeviceType>0</DeviceType>\n\r<DeviceID>as</DeviceID>\n\r</Send_Address>";

我希望找到Send_Address的值"\n\r <DeviceType>0</DeviceType>\n\r<DeviceID>as</DeviceID>\n\r"

我的做法是:
Match m = Regex.Match(s, "<Send_Address(.*?)>(.*?)</Send_Address>");
if (m.Success)
{
MessageBox.Show(m.Groups[2].ToString());
}


上面的语句在s字符串里面没有换行空白符号的时候,可以的正确的结果,但是如果有换行符号的话就不行了(因为.表示除\n以外的任意字符),有没有办法可以解决这个问题

110,539

社区成员

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

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

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