请问,这个正则表达式怎么写?

dfsr23 2012-05-28 01:40:56
string s = "百位邻期方案23";

要求:
如果字符串s中具有“方案”二字,就取“方案”以前的字符串。
如果没有“方案”二字,就全取字符串s。


正则表达式该怎么写?
...全文
175 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
花痴 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 2 楼 的回复:
C# code

Regex reg = new Regex(@"(?is)(?(.*方案).*?(?=方案)|.*)");


string source = "百位邻期方案23";
string replacestr = @"";
Regex reg = new Regex(@"(?is)(?(.*……

这位老兄的正则表达式,我琢磨好久,都不懂……
[/Quote]
i:igonorecase,s:singleline
dfsr23 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
C# code

Regex reg = new Regex(@"(?is)(?(.*方案).*?(?=方案)|.*)");


string source = "百位邻期方案23";
string replacestr = @"";
Regex reg = new Regex(@"(?is)(?(.*……
[/Quote]
这位老兄的正则表达式,我琢磨好久,都不懂,is是什么意思?
pmars 2012-05-28
  • 打赏
  • 举报
回复
^(?:(?!方案).)+
xiaozhunamen 2012-05-28
  • 打赏
  • 举报
回复
string s = "百位邻期方案23";
string regx = "(.*)方案|(.*)";
Match one = Regex.Match(s, regx);
Console.WriteLine(one.Groups[1].Value == "" ? one.Groups[2].Value : one.Groups[1].Value);
熙风 2012-05-28
  • 打赏
  • 举报
回复
这个也不一定非得正则啊,,字符串截取也可以的
花痴 2012-05-28
  • 打赏
  • 举报
回复
看错了,如果是提取方案以前字符串的话,二楼正确的
花痴 2012-05-28
  • 打赏
  • 举报
回复

new Regex("(?is)((.*方案)|(.*))")
bdmh 2012-05-28
  • 打赏
  • 举报
回复

Regex reg = new Regex(@"(?is)(?(.*方案).*?(?=方案)|.*)");


string source = "百位邻期方案23";
string replacestr = @"";
Regex reg = new Regex(@"(?is)(?(.*方案).*?(?=方案)|.*)");
Match mm = reg.Match(source);
MessageBox.Show(mm.Value);
rayyu1989 2012-05-28
  • 打赏
  • 举报
回复
if(s.indexOf("方案")!=-1)

111,126

社区成员

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

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

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