我想使用javascript正则表达式从特定行中查找特定字符串。帮我找出来。
Salary period 2019-6-M
Deductions
Along fin Robert(Netherlands)
s.v
Mr. E.P. Benjamin
San Marco 25
German
从上面的字符串中,我需要找到 Benjamin 。 扣除额字符串是常量,所以我尝试了 (?<=推导)\ n *?(\ w + \ s *)从哪里开始找到行和^ [^ \ n] + \ n(。+)+ \ n(。+)+ \ n(。+ )以找到本杰明。但不知道将两者合并并得到它。
答谢。谢谢
答案 0 :(得分:1)
您可以匹配Deductions,然后重复两次与整个字符串匹配的方式,而不是使用正向查找。
在第三个字符串中,匹配到最后,并捕获匹配非空格字符1+倍的组中的最后一个“单词”。
\bDeductions(?:\n.*){2}\n.* (\S+)$
\bDeductions
字边界,匹配推论(?:\n.*){2}
重复2次换行符和0+个字符(除换行符外),直到字符串结尾\n.* (\S+)
匹配换行符,除换行符外,0 +个字符。然后匹配一个空格,并捕获组1中非空格字符的1+倍。$
字符串结尾
const regex = /\bDeductions(?:\n.*){2}\n.* (\S+)$/m;
const str = `Salary period 2019-6-M
Deductions
Along fin Robert(Netherlands)
s.v
Mr. E.P. Benjamin
San Marco 25
German `;
console.log(str.match(regex)[1]);
答案 1 :(得分:0)
您可以根据您的起始字符串和行数创建动态正则表达式,如下所示:
Case: 1
The max number is 5
The min number is 1
Case: 2
The max number is 6
The min number is 4
答案 2 :(得分:0)
我找到了:
(?<=Deductions)(?:.*\n){3}?.* (\w+)\n
有帮助吗?