Regex 正则表达式检查X.X、空行和字符串中的单词Employees
嘿,我正在寻找一种方法,使用REGEX来检测它所查看的字符串中是否有X.X 一些字符串的示例如下:Regex 正则表达式检查X.X、空行和字符串中的单词Employees,regex,vb.net,Regex,Vb.net,嘿,我正在寻找一种方法,使用REGEX来检测它所查看的字符串中是否有X.X 一些字符串的示例如下: 1.0- Back of Place 1.1- Drive-thru Bob Barker Employees 2.1- Closing Garret Neal 3.0 - Day 3.1 -Day/Night Bill Gates 4.1- Training [etc etc etc] 我只想知道字符串是否包含X.X或雇员。一旦我能检测
1.0- Back of Place
1.1- Drive-thru
Bob Barker
Employees
2.1- Closing
Garret Neal
3.0 - Day
3.1 -Day/Night
Bill Gates
4.1- Training
[etc etc etc]
我只想知道字符串是否包含X.X或雇员。一旦我能检测到这两件事,列表应该如下所示:
Bob Barker
Garret Neal
Bill Gates
[etc etc etc]
我尝试了[0-9]{1,3},但它似乎没有给我想要的:
Dim blah = Regex.Match("1.1- Drive-thru", "[0-9]{1,3}", RegexOptions.Singleline).ToString()
MsgBox(blah)
因此,您有一个多行字符串作为输入。在该字符串中,您希望删除以
数字
+
+数字
开头的行或以员工
开头的行
您可以使用Regex。用以下Regex替换:
Regex.Replace(str, "(?m)^(?:Employees|\d+\.\d+).*[\r\n]*", "")
见
正则表达式匹配:
(?m)^
-行的开始
(?:Employees |\d+.\d+)
-一个Employees
或一个或多个数字后跟
,后跟一个或多个数字
*
-行的其余部分
[\r\n]*
-零个或多个CR或LF字符(因此,它还将匹配多个连续的空行)
CR和LF是可选的,因此图案可以匹配最后一行
:
输出:
Bob Barker
Garret Neal
Bill Gates
[etc etc etc]
您的意思是查找以数字开头的字符串。数字
?使用(?m)^\d+\.\d+.*
。根据@WiktorStribixew所说的,我还将“雇员”条目包括在列表中<代码>(?:^\d+\.\d+.*Employees)
我不理解这个问题:1)输入数据(字符串、列表/数组?)2)最终结果(多行字符串、数组?)。示例代码有相当大的误导性。如果是多行字符串,我宁愿使用正则表达式。@WiktorStribiżew OP试图排除以X.X和/或Employee开头的所有内容。@Jeroen:我发现“排除”这个词是一个非常通用的词(在正则表达式的上下文中),总是需要澄清。谢谢你的帮助,Wiktor!我在某个地方读到了\r
在大多数情况下不一定是有\n
的。我的意思是,使用这两种方法都是无用的(我不确定-但我确定在JS语言中是正确的),您如何检查正则表达式中的空白值?是吗?在Windows中,换行符序列是\r\n
。在Linux/Unix中,它是\n
。在MacOS中,它是\r
。当我写\r?\n?
时,我确信它们都是匹配的。现在,当我使用\s
时,我匹配所有这些“垂直”空格和所有水平空格。我不想修剪下一行,因此,我没有使用\s
。如果您不关心下一行的前导空格,可以使用\s*
。@WiktorStribiżew但如果是空白,那该怎么办?因为除了“”之外,没有其他内容。
Bob Barker
Garret Neal
Bill Gates
[etc etc etc]