寻求一个正则表达式
char *p="say(\"hello, world!\n\");";
上面是一个普通的C语言语句,
如何用正则表达式捕获它引号里面的内容“say(\"hello, world!\n\");”?
目前我只会用“\"(?<str>.*?)\"”捕获char *p="say(NULL);";这种字符串里没有引号的字符串
问题点数:20、回复次数:3Top
1 楼icansaymyabc(学习与进步)回复于 2006-03-20 14:02:38 得分 0
注意:
如果 char *p="say(\"hello, world!\n\");";char *q="xyz";
需要得到两个匹配:“say(\"hello, world!\n\");”和“xyz”
而不是得到一个错误的匹配:“say(\"hello, world!\n\");";char *q="xyz”Top
2 楼fancyf(凡瑞)回复于 2006-03-21 13:03:16 得分 20
"((?!\\)[^"]*?\\")*[^"]*?"
public static Regex regex = new Regex(
@"""((?!\\)[^""]*?\\"")*[^""]*?""",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);
只测试了你给的例子Top
3 楼icansaymyabc(学习与进步)回复于 2006-03-22 13:55:59 得分 0
厉害,不愧是三星级的高人,信手拈来。Top




