正则表达式(C#)中未终止的[]集[重复]
Posted
技术标签:
【中文标题】正则表达式(C#)中未终止的[]集[重复]【英文标题】:Not terminated set of [] in regex (C#) [duplicate] 【发布时间】:2018-07-14 13:05:46 【问题描述】:我正在尝试解析文本以查找此模式中的数据:
([^]+)
即 和
之间的任何字符序列。
但是,当我尝试构建
Regex
对象时:
Regex _regex = new Regex("([^]+)", RegexOptions.Compiled);
我收到了这个错误:
analysis of "([^]+)" - Set of [] not terminated....
不管是什么意思... 有人有提示吗?
【问题讨论】:
[^]
没有意义。
regxr 明白了吧……
^
表示排除,因此您的组中没有字符。
是的,排除 void 组中的任何元素...即包含所有内容...创建一个接受任何序列的组的方法是什么?
听起来你在找.
。
【参考方案1】:
[^...]
的目的是否定指定列表中存在的字符类。在^
符号之后,为了定义正确的正则表达式,您应该包含一组要排除的字符,例如[^a]+
(这匹配一个或多个不包含文字a
的字符) .
您尝试定义的正则表达式可能是:
\s*([\w]+)\s*
访问 this link 以尝试工作演示。
【讨论】:
【参考方案2】:这是因为[^]
不是有效的正则表达式,因为您需要指定至少一个要排除的符号。
为了捕获直到结束 的字符串,请将表达式更改为:
((?:[^]|[^])*)
Demo.
【讨论】:
以上是关于正则表达式(C#)中未终止的[]集[重复]的主要内容,如果未能解决你的问题,请参考以下文章