[英]Use hyphen as string for regex
我在c#中开发了一个正则表达式,用于检查日志文件中的特定模式。
字符串看起来像这样:
05-20-2013 15:57:09.334715 [del1-dhp-26330] Read 100 entries from syslog file test
我的正则表达式函数是
\d\d-\d\d-\d\d\d\d \d\d:\d\d:\d\d.\d\d\d\d\d\d [@"+agentName+"]"+" Read 100 entries from "+flatFileLogSourceName;
其中代理名称和flatfilelogsource名称将检索字符串中的各个值。
但是收到错误消息说[xy]
范围是反向顺序。这应该是由于代理名称,因为它包含连字符。
所以我基本上是在寻找可能逃避连字符作为一个字符串的方法等等@
确实给\\
对于您收到的错误消息,我认为"[@"+agentName+"]"
应该写为"\\[@"+agentName+"\\]"
就像大多数正则表达式一样,尽管我不知道C#。
快速说明
方括号构成一个类,是要匹配的有效字符的一种集合。 这些类可以使用范围[0-9]
来匹配十进制表示法中的数字,或者使用[0-7]
来匹配八进制表示法中的数字。 并匹配[ae]
与a,b,c,d或e匹配的字符。 但是范围不能相反。 因此[az]
是有效范围,但[za]
不是有效范围。 为避免创建字符类,必须用反斜杠转义方括号
\\是正则表达式转义符。
这应该工作:
"\d{2}\-\d{2}\-\d{4} \d{2}:\d{2}:\d{2}\.\d{6} \["+agentName+"\] Read 100 entries from "+flatFileLogSourceName
编辑:虽然看到这句话使我对您实际要求的内容感到困惑:
其中代理名称和flatfilelogsource名称将检索字符串中的各个值。
如果您尝试从正则表达式匹配项中提取数据,这应该对您有所帮助: http : //www.regular-expressions.info/named.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.