Find the longest string of digits (Python solution) in a string
Input abcd12345ed125ss123456789
output 123456789
python3
import re
print(max(re.findall(r"\d*", input()), key=len))
Wherein findall function
findall function is a function of the regular expression string matching according to certain rules, and returns a list , a regular expression
. # 点可代表一切字符
\ # 起转义作用
[...] # 指代方括号中的任意字符
\d # 指代数字0-9
\D # 指代非数字
\s # 指代一切空格,包括tab制表符、空格、换行等
\S # 指代非空格
\w # 指代大小写字母、数字和下划线
\W # 指代非大小写字母、数字和下划线
* # 匹配前面字符 >=0 次
+ # 匹配前面字符1次及以上
? # 匹配前面字符0次或1次
{m} # 匹配m次
{m,n} # 匹配m到n次
{m,} # 至少匹配m次
\ d * is meant a continuous string down the digital matched
r meant to be passed according to the original string string
** max (list, key = len ) ** returned from the list according to the longest length the one element.
C++
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str, res, cur;
cin >> str;
for (int i = 0; i <= str.length(); i++)
{
// 数字+=到cur
if (str[i] >= '0' && str[i] <= '9')
{
cur += str[i];
}
else
{
// 找出更长的字符串,则更新字符串
if (res.size() < cur.size())
res = cur;
else
cur.clear();
}
}
cout << res;
return 0;
}