正则表达式

dadaoluobin 2006-10-28 11:37:19
字符串用''或者""括起,比如I am 'ddd', you are "I'm",求一正则表达式,用来提取ddd和I'm
...全文
108 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
petshop4 2006-10-30
  • 打赏
  • 举报
回复
Regex r = new Regex("([\"']).*?\\1", RegexOptions.IgnoreCase);
foreach (Match m in r.Matches(str))
{
//Console.WriteLine(m.Groups[1].Value);
Console.WriteLine(m.Result("${value}"));
}
Console.ReadLine();
dadaoluobin 2006-10-28
  • 打赏
  • 举报
回复
上面的表达式无法判断转义符
myvicy 2006-10-28
  • 打赏
  • 举报
回复
这个好一点。
<script>
str="I am 'ddd', you are \"I'm\",I am 'ddd',I am \"ddd\","
alert(str.match(/'([^'"]*)'|^'([^']+"?[^']+)'/g));
alert(str.match(/"([^'"]*)"|"([^"]+'?[^"]+)"/g));

</script>
myvicy 2006-10-28
  • 打赏
  • 举报
回复
<script>
str="I am 'ddd', you are \"I'm\""
alert(str.replace(/^[^']*'([^']+)'.*$/g,"$1"));
alert(str.replace(/^[^"]*"([^"]+)".*$/,"$1"));
</script>
股神 2006-10-28
  • 打赏
  • 举报
回复
dadaoluobin 2006-10-28
  • 打赏
  • 举报
回复
增加一个功能,如果前面遇到//或者/*注释符,忽略这个字符串,
比如:/*I am 'ddd'*/, you are "I'm"
这时我只提取"I'm",而忽略'ddd',能够用正则表达式实现这样的功能吗?
ilove8 2006-10-28
  • 打赏
  • 举报
回复

string str = "I am 'ddd', you are \"I'm\",I am 'ddd',I am \"ddd\",";
Regex r = new Regex("\"(?<value>.*?)\"|'(?<value>.*?)'", RegexOptions.IgnoreCase);
foreach (Match m in r.Matches(str))
{
//Console.WriteLine(m.Groups[1].Value);
Console.WriteLine(m.Result("${value}"));
}
Console.ReadLine();
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-28 11:37
社区公告

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