我有一个正则表达式,我正在对另一个字符串进行拆分,我得到了奇怪的结果.
string subjectString = "Triage|Follow Up|QA";
string[] splitArray = null;
try
{
splitArray = System.Text.RegularExpressions.Regex.Split(subjectString, @"(?<=(^|[^\\]))\|");
foreach (var item in splitArray)
{
System.Diagnostics.Debug.Print(item);
}
}
catch
{
}
Run Code Online (Sandbox Code Playgroud)
正在印刷的物品是:
分类
e
跟进
p
QA
正则表达式在RegexBuddy中正常运行,但在C#中则不行.什么导致奇怪的行为?解释为什么拆分功能按照它的方式起作用的额外要点.
(…)你的后视断言中的分组导致了这种情况.请尝试使用非捕获组:
@"(?<=(?:^|[^\\]))\|"
Run Code Online (Sandbox Code Playgroud)
或者根本没有额外的分组:
@"(?<=^|[^\\])\|"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |