Regex 如何使用正则表达式提取名字?

Regex 如何使用正则表达式提取名字?,regex,Regex,我的输入字符串如下所示: Employee: Joe Banana Department: Sales Location: New York Bla bla bla Note: even more bla 这个正则表达式用于提取全名,即Joe Banana (?s).*(?-s)(?m)^\s*(Employee): .*\s(.*)$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).* 但是,这不适用于名字,而是提取部门: (?s).*(?-s)(

我的输入字符串如下所示:

Employee: Joe Banana
Department: Sales 
Location: New York

Bla bla bla

Note:

even more bla
这个正则表达式用于提取全名,即Joe Banana

(?s).*(?-s)(?m)^\s*(Employee): .*\s(.*)$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).*
但是,这不适用于名字,而是提取部门:

(?s).*(?-s)(?m)^\s*(Employee): (.*)\s.*$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).*
为什么这些正则表达式不提取名字和姓氏


我需要继续搜索这些组,因为我们需要在注意后停止搜索:

试试这个,第一个匹配组是名字,第二个匹配组是姓氏:

(?m)^员工:\s+(w+)\s+(w+)

或者在正则表达式中用(w+)\s+(w+)替换(.*):

(雇员): .\s(w+)\s+(w+)$(?-m)(?s)。(?-s)(?m)^\s*(注):$(?-m)(?s)*


试试这个,第一个匹配组是名字第二个匹配组是姓氏:

(?m)^员工:\s+(w+)\s+(w+)

或者在正则表达式中用(w+)\s+(w+)替换(.*):

(雇员): .\s(w+)\s+(w+)$(?-m)(?s)。(?-s)(?m)^\s*(注):$(?-m)(?s)*

给你:

Employee:\s*(?P<employee>.+)[\n\r]
Department:\s*(?P<department>.+)
Employee:\s*(?P.+)[\n\r]
部门:\s*(?P.+)
请参见(注意不同的修改器!)

这里是:

Employee:\s*(?P<employee>.+)[\n\r]
Department:\s*(?P<department>.+)
Employee:\s*(?P.+)[\n\r]
部门:\s*(?P.+)
请看(注意不同的修饰语!)

我想到了这个

名字

(?s).*(?-s)(?m)^\s*(Employee): (.*?)\s.*$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).*
姓氏

(?s).*(?-s)(?m)^\s*(Employee): .*?\s(.*)$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).*
我想到了这个

名字

(?s).*(?-s)(?m)^\s*(Employee): (.*?)\s.*$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).*
姓氏

(?s).*(?-s)(?m)^\s*(Employee): .*?\s(.*)$(?-m)(?s).*(?-s)(?m)^\s*(Note):$(?-m)(?s).*

如果使用此选项,则第一个捕获组将是名字,第二个捕获组将是姓氏:

员工:\s+(\w+)\s+(\w+)

如果使用此选项,第一个捕获组将是名字,第二个捕获组将是姓氏:

员工:\s+(\w+)\s+(\w+)

嗯<代码>(.m)^员工:(.+)和
(.m)^部门:(.+)
?它仍然需要与这些组一起工作。。。因为我们不想搜索注释:正如你所看到的,这个问题需要澄清。请根据实际需求更新。描述更新您需要停止的意思是什么?使用
Regex.Match
时,您只能得到一个匹配项。您的正则表达式在哪里以及如何使用?你的区块用什么分隔?只是在另一行写上“注意:”吗?试试看-您将获得字符串中的第一个员工姓名和部门。那么<代码>(.m)^员工:(.+)和
(.m)^部门:(.+)
?它仍然需要与这些组一起工作。。。因为我们不想搜索注释:正如你所看到的,这个问题需要澄清。请根据实际需求更新。描述更新您需要停止的意思是什么?使用
Regex.Match
时,您只能得到一个匹配项。您的正则表达式在哪里以及如何使用?你的区块用什么分隔?只是在另一行写上“注意:”吗?试试看-您将获得字符串中的第一个员工姓名和部门。非常感谢!!这个小把戏节省了我这么多时间,非常感谢!!这个小把戏节省了我很多时间