【发布时间】:2020-04-27 17:29:36
【问题描述】:
我是正则表达式的新手,希望得到一些指导/帮助。
目前,我正在寻找一个表达式,它从所提供文本的第二行派生出特定部分的文本。
这是正文:
123 随处大道 温尼伯,马尼托巴 R3E 0L7 加拿大 药房经理:人人 药房执照持有人/所有者:123456 Manitoba Ltd.
使用代码here查看正确的格式
我的目标是从第二行导出“Manitoba”字符串,但是我想让它成为动态的,而不是编写一个表达式来始终将 Manitoba 作为静态获取。我使用下面的代码来定位第二行:
(.*)(?=(\n.*){3}$)
(它匹配从最后一行开始的 3 行,从而定位所需的行)
我注意到,在数据集中,省(曼尼托巴省)总是位于两个空格之间。
我可以对代码进行任何添加,以便表达式仅针对第二行,然后匹配空格之间的第一个字符串?
也许使用带有正向环视的惰性表达式?
如果我以空格之间的所有匹配项为目标,则需要同时使用我不想要的“Manitoba”和“R3E 0L7”。
我希望它只匹配第二行空格之间的第一段文本。
非常感谢任何帮助:-)
谢谢。
【问题讨论】:
-
试试
^.*\r?\n\S+[^\S\r\n]+(\S+).*(?=(?:\n.*){3}$)regex101.com/r/Aiy2kl/1 -
@Thefourthbird 你能解释一下我是如何工作的吗?那将不胜感激。看起来确实有效。
-
我已将其添加为带有解释的答案。
标签: regex regex-lookarounds regex-group