【发布时间】:2019-04-16 08:57:59
【问题描述】:
我正在努力寻找一种方法来使用正则表达式提取地址的前两行,其中不包含单词“Account”。
如果我们采用这个地址:
公司名称
某路
某镇
我可以使用正则表达式(?:.*\s*){2}返回
公司名称某路
这很棒。
但是,如果顶部多出一行,则使地址变为:
应付账款
公司名称
Some Road
Some Town
然后它不再选择我想要的那两条线。
我已经尝试过这里的方法:Regular expression to match a line that doesn't contain a word?,但没有成功,也尝试过使用(?!Account.*)(?:.*\s*){3}之类的组合,但收效甚微。
Microsoft 网站https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference 有大量字符等可供使用,但我还没有设法使组合起作用。
我得到的最接近的是使用 [^Account.*](?:.*\s*){3} 返回
应付账款 公司名 某路
我只是无法删除该行的其余部分!任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
在多行模式下尝试
^(?!Accounts)(?:.*\n?){2}和^。如果它不是文本编辑器,请将(?m)添加到正则表达式的开头。见regex101.com/r/1Ci5yD/1 -
您在开头添加 (?m) 的答案已经完成了我所需要的!这是谜题中缺失的部分!将此作为答案,我会将其标记为已接受。谢谢。
标签: regex