我正在尝试编写一个匹配子字符串“[ID] = '#number'”的正则表达式。
这是字符串的一部分,我的意思是:
[Patient.ID] = 123 And [Zorgtraject] = 123 And [Activiteit] Is Null Or [ID] = '86777' Or [ID] = '86778' Or [ID] = '86779' Or [ID] = '86780' Or [ID] = '86781' Or [ID] = '86782' Or [ID] = '86783' Or [ID] = '86784' Or [ID] = '86785' Or [ID] = '86786' Or [ID] = '86787' Or [ID] = '86788' Or [ID] = '86789' Or [ID] = '86790' Or [ID] = '86791' Or [ID] = '86792' Or [ID] = '86793' Or [ID] = '86794' Or [ID] = '86795' Or [ID] = '86796' Or [ID] = '86797' Or [ID] = '86798' Or [ID] = '86799' Or [ID] = '86800' Or [ID] = '86801' Or [ID] = '86802' Or [ID] = '86803' Or [ID] = '86804' Or [ID] = '86805' Or [ID] = '86806' Or [ID] = '86807' Or [ID] = '86808' Or [ID] = '86809' Or [ID] = '86810' Or [ID] = '86811' Or [ID] = '86812' Or [ID] = '86813' Or [ID] = '86814' Or [ID] = '86815' Or [ID] = '86816' Or [ID] = '86817' Or [ID] = '86818' Or [ID] = '86819' Or [ID] = '86820' Or [ID] = '86821' Or [ID] = '86822' Or [ID] = '86823' Or [ID] = '86824' Or [ID] = '86825' Or [ID] = '86826' Or [ID] = '86827' Or [ID] = '86828' Or [ID] = '86829' Or [ID] = '86830' Or [ID] = '86831' Or [ID] = '86832' Or [ID] = '86833' Or [ID] = '86834' Or [ID] = '86835' Or [ID] = '86836' Or [ID] = '86837' Or [ID] = '86838' Or [ID] = '86839' Or [ID] = '86840' Or [ID] = '86841' Or [ID] = '86842' Or [ID] = '86843' Or [ID] = '86844' Or [ID] = '86845' Or [ID] = '86846' Or [ID] = '86847'
我已经走到这一步了:[\[ID\] = '{\d+:\d+}'] 但这真的很奇怪,就像它也捕获了 [ 和 ID] 来自 Patient.ID。
我想要的只是一个正则表达式,它可以生成像 [ID] = '86845' 这样的子字符串
提前谢谢你。
请您参考如下方法:
你可以使用
\[ID]\s*=\s*'\d+'
参见 regex demo
详情
\[ID]-[ID]子串\s*=\s*- 包含 0+ 个空白字符的='- 单引号\d+- 1+ 位'- 单引号
C#:
var results = Regex.Matches(s, @"\[ID]\s*=\s*'\d+'")
.Cast<Match>()
.Select(x => x.Value)
.ToList();
只获取数字使用
var results = Regex.Matches(s, @"\[ID]\s*=\s*'(\d+)'")
.Cast<Match>()
.Select(x => x.Groups[1].Value)
.ToList();
