我想从字符串中提取数值。
例如。我有这样的价值观:
abc9856412368def
9812345678abc
abc9812345678
abc256789def
4567abc
我想像这样输出(在三列中):
Col1 Col2 Col3
abc def 9856412368
abc 9812345678
abc 9812345678
abc def 256789
abc 4567
如果number为10或10以上,则将其存储在col3中的col2中。我尝试过使用REGEXP,但它没有在mysql工作台中提取数字。但它返回零行。
select first_name
from mytable
where First_Name regexp '^[0-9]+$' and First_Name!=""
我正在考虑使用java找到它。在结果集中存储它。我还想确保将手机号码插入第2栏。任何人都可以为此指导我吗?
答案 0 :(得分:1)
我认为在Java Regex中也应该是可行的方法。
// Extract numbers from String
Pattern p1 = Pattern.compile("-?\\d+");
// Extract words from String
Pattern p2 = Pattern.compile("-?\\D+");
Matcher m1 = p1.matcher("abc9856412368def");
Matcher m2 = p2.matcher("abc9856412368def");
while (m1.find()) {
System.out.println(m.group()); // Prints 9856412368
}
while (m2.find()) {
System.out.println(m.group()); // Prints abc and def
}
现在您只需要格式化输出。