尽管它们与正则表达式在一起,但只得到 3 位和 3 位无字
Get only 3 digit and 3 digit without word although they are together with regular expression
我是正则表达式的初学者。对于我的情况,我有一个问题,即字母和数字可能有 space 或可能没有像这样的 space。
4473 333hello 564 394844he hello
我需要服用 333, 564
我这样试过,还是不行。我该怎么办?
print(re.findall(r'\b\d{3}\b', "4473 333hello 564 394844he hello")) //it give ['564']
print(re.findall(r'\w+[0-9]{3}\w+', "4473 333hello 564 394844he hello")) // it give ['39484he']
尝试this
const regex = /\D\d{3}\s?/g;
const str = `4473 333hello 564 394844he hello
`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
试试这个:
(?<!\d)\d{3}(?!\d)
Regex101
详情:
(?<!\d)
- 否定后视以确保匹配前没有数字
\d{3}
- 匹配 3 个数字
(?!\d)
- 负前瞻以确保匹配后没有数字。
我是正则表达式的初学者。对于我的情况,我有一个问题,即字母和数字可能有 space 或可能没有像这样的 space。
4473 333hello 564 394844he hello
我需要服用 333, 564
我这样试过,还是不行。我该怎么办?
print(re.findall(r'\b\d{3}\b', "4473 333hello 564 394844he hello")) //it give ['564']
print(re.findall(r'\w+[0-9]{3}\w+', "4473 333hello 564 394844he hello")) // it give ['39484he']
尝试this
const regex = /\D\d{3}\s?/g;
const str = `4473 333hello 564 394844he hello
`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
试试这个:
(?<!\d)\d{3}(?!\d)
Regex101
详情:
(?<!\d)
- 否定后视以确保匹配前没有数字\d{3}
- 匹配 3 个数字(?!\d)
- 负前瞻以确保匹配后没有数字。