1
新的正则表达式。我想验证这种格式:.NET正则表达式如何到
- 任何字符允许的,除了“{”和“}”。
- A '{' 字符必须遵循的特定字符串的一个
这些字符串之后的任何字符可以去
- 每个 '{' 必须有一个结束的 '}'
- 嵌套的“{的被允许
实施例:
abc{FILE:any text} def {FILE:mno{ENV:xyz}}
FILE:
和ENV:
是'{'char后需要的特定字符串的示例。 我写这个正则表达式:
^
(
[^\{\}]+
|
(?<Depth>\{)(FILE:|ENV:)
|
(<-Depth>\})
)*
(?(Depth)(?!))
$
,但它不符合我的需要的格式。我想念什么?
非常感谢。
编辑:做同样的,成功地我希望:-) MSDN链接,Other site
正则表达式不应该被用来匹配递归元素。您必须使用一些递归的.NET代码来补充单深度正则表达式。 – qJake
@SpikeX是正确的,任何嵌套代码是一个正则语法,这是复杂性正则表达式上的一步,意味着正则表达式将无法令人满意地解析它。 另外,检查出这个着名的帖子顶部的答案http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
@Hans一个国防部删除我的评论最后一次我链接到那个帖子......他必须享受在他的业余时间写递归正则表达式...... :) – qJake