正则表达式选择直到换行符

ste*_*ven 7 regex

我试图选择CORP ACT OPTION NO直到 2 个新行和回车之后的所有内容(例如,直到保管帐户)

我的 reg 表达式 atm 提取信息(所有信息都在 CORP ACT OPTION 之后)是

CORP ACT OPTION NO\.([\s\S]*)
Run Code Online (Sandbox Code Playgroud)

达拉样本:

CORP ACT REFERENCE                  : 007XS0212069115
SENDER'S REFERENCE                  : 1212070800330001
FUNCTION OF MESSAGE                 : NEW MESSAGE
CORP ACT EVENT                      : INTEREST PAYMENT
PLACE OF SAFEKEEPING                : US
ISIN                                : XS0212069115
ISIN/DESCRIPTION                    : KFW 4.750 071212 GBP
METHOD OF INTEREST COMPUTATION      : A006
EX-DATE                             : 20121207
RECORD DATE                         : 20121206
CORP ACT OPTION NO.                 : 001
CORPORATE ACTION OPTION CODE        : CASH
CURRENCY OPTION                     : GBP
RESULTING AMT                       : GBP617,5
PAYMENT DATE                        : 20121207
EXCHANGE RATE                       : GBP/GBP/1,
INTEREST RATE                       : 4,75

SAFEKEEPING ACCOUNT                 : 000000000000
CONFIRMED BALANCE                   : FAMT/13000,
CREDIT/DEBIT IND                    : CREDIT
Run Code Online (Sandbox Code Playgroud)

我怎样才能选择直到上面的换行符SAFEKEEPING ACCOUNT?非常感谢。

h2o*_*ooo 8

/.*\s*:\s*.*/g应该可以正常工作。如果没有m匹配,就不会匹配超过一行。

正则表达式的解释:

  • .* 尽可能多地匹配,直到后面出现:
  • \s*:*任意数量的空格(0 个或多个)后跟一个文字:字符
  • \s* 任意数量的空格(0个或更多)
  • .* 尽可能匹配直到换行

Regex101 演示

您还可以使用捕获组并检查每个键的每个值:

/(.*)\s*:\s*(.*)/g

正则表达式 101 演示