我尝试了许多正则表达式,但是无法获得所需的输出。 我的字符串是
# Whether to start the thrift rpc server.
start_rpc: true
我需要提取紧随先生或太太之后的数字组,即3611
答案 0 :(得分:1)
尝试使用正则表达式:(?:Ms|Mr|Mrs).*?(\d+)
并获取组1的值
答案 1 :(得分:1)
另一种在女士之后(或女士)捕获数字的方法可能是:
那会匹配
\b
,以确保它不是较大匹配项的一部分,然后是M (?:rs?|s|iss)\.
,它将与变体之一匹配,后跟一个点。 [^\d]+
(\d+)
中的一个或多个数字
const regex = /\bM(?:rs?|s|iss)\.[^\d]+(\d+)/g;
const str = "Ms.Evalyn 33 J Hobbs AND Mr.Jan K Hir 55 years Mr. sch AND Ms.Gale D Bannister 3611";
while ((m = regex.exec(str)) !== null) {
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
console.log(m[1]);
}