字符串:WITH Date = {GETDATE()} AND Customer = 8824
模式:(([A-Za-z0-9@=><]+)|((\(([^)]+)\)))|(('[^,;]+'))|({[A-Za-z0-9@=><()]+}))+
输出:
WITH
WITH
Date
Date
=
=
{GETDATE()}
{GETDATE()}
AND
AND
Customer
Customer
=
=
8824
8824
显然,所需的输出是每个单词的一个实例,而不是多个。 我没有包括任何旗帜。
模式有什么问题,还是我应该包含任何标志?
感谢。
答案 0 :(得分:2)
为何选择Regex?
https://regexr.com/3isdf - &gt; ([{}()A-Za-z0-9@=><]+)
如果在[]
中包含括号或花括号/方括号作为第一个字符,则将它们视为字面意思。
Simpler将是一个string.Split(..),就像这样:
using System;
public class Program
{
public static void Main()
{
var t =
"WITH Date = {GETDATE()} AND Customer = 8824"
.Split(" ".ToCharArray(), // add other unwanted chars to splitter
StringSplitOptions.RemoveEmptyEntries);
foreach(var part in t)
Console.WriteLine(part);
}
}
输出:
WITH
Date
=
{GETDATE()}
AND
Customer
=
8824