我是编程新手,我正在使用C#2010。在我需要维护的代码中有一些很长(50行)的正则表达式。此外,我需要解析一些包含大量信息的文本文件。你能为这些任务推荐一款工具吗?
答案 0 :(得分:11)
单击“解释”复选框,然后点击http://myregextester.com上的提交,您将获得YAPE::Regex::Explain
的精彩输出The regular expression:
(?-imsx:[foo]bar(baz))
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
[foo] any character of: 'f', 'o', 'o'
----------------------------------------------------------------------
bar 'bar'
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
baz 'baz'
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
答案 1 :(得分:7)
两个工具:
regexbuddy - > http://www.regexbuddy.com/
和expresso - > http://www.ultrapico.com/Expresso.htm
首先不是免费而第二是。两者都提供类似的特征我个人使用的第一个不知道为什么:D
答案 2 :(得分:4)
另一个在线工具:http://gskinner.com/RegExr/
答案 3 :(得分:2)
@Lincoln 我同情你的问题。遗憾的是,正则表达式对内部文档的作用范围很小,因此50行的正如二进制程序。请注意,如果你改变其中的1个字符,整个事情就会破裂。例如,Here是日期的正则表达式:
^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$
分析此正则表达式,RegexBuddy匹配日期
yyyy-mm-dd
和1900-01-01
之间的2099-12-31
格式,带有 选择四个分离器。锚点确保整个变量 是一个日期,而不是包含日期的文本。这一年是 由(19|20)\d\d
匹配。我使用交替来允许前两个 数字为19
或20
。
如果您不知道这是一个约会,那么就需要采用类似侦探或密码分析的方法来解决它正在做的事情。正则表达式伙伴等会有所帮助,但不会给出语义。
我的猜测是你的50行正则表达式(当我写这些单词时我感到不寒而栗)会有日期和公司ID以及地址和善良知道嵌入其中的内容。
唯一的好消息是,正则表达式对语言的依赖程度低于以往。因此,如果它最初是用Java编写的,那么它可能适用于C#,反之亦然。
它只是用于识别字段还是有捕获组?这些是平衡括号,通过API将子字段提取到程序中。通过检查这些字段包含的内容,您可能会有一个指向正则表达式的有用指针。
务实,除非它在关键路径上,尝试尽可能少地触摸它!
答案 4 :(得分:1)
刚刚找到一个非常酷的正则表达式 explainer 工具:
http://www.regexper.com/
“在幕后,RegExper是一个Ruby应用程序,它将正则表达式转换为SVG图像.SVG嵌入在页面中,但应该可以提取或复制它以用于您自己的文档。 “
有关更多信息,请阅读此博文:
http://www.sitepoint.com/regexper-regular-expressions-explained/