Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式检查X.X、空行和字符串中的单词Employees_Regex_Vb.net - Fatal编程技术网

Regex 正则表达式检查X.X、空行和字符串中的单词Employees

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或雇员。一旦我能检测

嘿,我正在寻找一种方法,使用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雇员。一旦我能检测到这两件事,列表应该如下所示:

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]