正则表达式难道是这样工作的?
Regex r = new Regex(@ "@(? <x> [0-9a-zA-Z]*) ", RegexOptions.IgnoreCase|RegexOptions.Compiled);
执行过后,r的结果是r = {@(? <x> [0-9a-zA-Z]*)},初始化的时候明明是(@ "@(? <x> [0-9a-zA-Z]*) ", 里面有两个@@,为什么结果就变成了{@(? <x> [0-9a-zA-Z]*)},里面变成了一个@?那位大侠帮忙看看,很困惑。
------解决方案--------------------首先你要明白@ "@(? <x> [0-9a-zA-Z]*) " 中这两个@的区别
第一个@表示后面的按字符串处理,不进行转义,就不用再加\号了
第二个@才是正则表达式的内容,在这里就是普通的文本字符“@”
在你这个正则中看得不明显,举个例子吧
@ "\d+@\w+\.\w+ "
"\\d+@\\w+\\.\\w+ "
用在程序中的效果是一样的,你设断点看一下就知道了