【发布时间】:2021-04-02 07:25:30
【问题描述】:
我只是想获取以下文字:
Password length (length ordered)
5 = 1 (0.37%)
6 = 1 (0.37%)
7 = 1 (0.37%)
8 = 157 (58.58%)
9 = 55 (20.52%)
10 = 33 (12.31%)
11 = 12 (4.48%)
12 = 6 (2.24%)
13 = 2 (0.75%)
然后找到Password Length 和\n\n 之间存在的每一个新行。这是我目前正在做的事情
data[/(?<=Password length)(.*?)(?=\n\n)/m]
但这会在第一行捕获 (length ordered)。
我尝试过这样做:
44] pry(main)> data[/(?<=Password length.*?\n)(.*?)(?=\n\n)/m]
(eval):2: invalid pattern in look-behind: /(?<=Password length.*?\n)(.*?)(?=\n\n)/m
基本上捕获Password length 之后的所有内容直到新行,但正如您在上面看到的,我在后视中收到关于无效模式的错误。
我应该做些什么来解决这个问题?
【问题讨论】:
-
试试
/(?:\G(?!\A)|Password length).*\K\R(?!\R)/ -
最终结果只是
\n,而不是从第二行开始到最后一行的所有内容,上面有13 -
您要求获取所有新行。好的,那你需要
data[/Password length.*\R(?m:(.*?))\R{2}/, 1]