SQL怎么取字符串中的数字

SQL怎么取字符串中的数字,第1张

1、创建测试表,

create table test_str(id int, v_str varchar2(20));

2、插入测试数据

insert into test_str values(1,'abc123');

insert into test_str values(2,'ef414219sd');

insert into test_str values(3,'123');

insert into test_str values(4,'dddfg');

commit;

3、查询表中全量数据,select t from test_str t;

4、编写语句,取字符串中的数字

 select t, regexp_replace(v_str,'\D','') v_str2 from test_str t;

如何在EXCEL中提取一组含文字与数字的字符串中的数字 假定需要处理的信息在A列从A1开始,以下几种方法可提取数字:
1、文字在前数字在后:取数字公式=RIGHT(A1,LENB(A1)-LEN(A1)) 下拉填充
2、数字在前文字在后:取数字公式=LEFT(A1,2LEN(A1)-LENB(A1)) 下拉填充3、数字在中间、文字在两边:取数字公式=-LOOKUP(0,-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),2LEN(A1)-LENB(A1))) 下拉填充
你先发个样本我帮你看下先,893883134@qq
如何在字符串中提取数字
可选用以下方法提取:
1、给出数字的起始位置和长度。示例公式:=--mid(a1,5,3) 公式结果为提取A1单元格中从第5位开始的3个数字。
2、提取某特定字符串后的数字。示例公式:=-lookup(0,-mid(a1,find("ABC",a1)+LEN("ABC"),row(1:99))) 公式结果为提取A1单元格中字符串ABC之后的数字。
3、数字在一侧其他则中文字符组成。示例公式:数字在前,公式=left(a1,2len(a1)-lenb(a1));数字在后,公式=right(a1,2len(a1)-lenb(a1))
4、没有给出任何条件,只要求将单元格中的数字提出。通用公式=-lookup(0,-mid(a1,min(find(row(1:10)-1,a1&1/17)),row(1:99))) 按组合键ctrl+shift+enter结束公式。
java中如何提取字符串中的数字?
import javaioBufferedReader;
import javaioInputStreamReader;
import javautilArrays;
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t");
boolean flag = true;
for (int i = 0; i < strlength(); i++) {
char c = strcharAt(i);
判断是否是数字
if (c >= '0'&& c <= '9') {
判断和字符串中的数字是否重复
for (int j = 1; j < strbuflength(); j++) {
if (c == strbufcharAt(j)) {
如果重复,标志位数值为false,并跳出循环;否则标志位设置为true
flag = false;
break;
} else
flag = true;
}
只有在即是数字又不重复的情况下才将改字符拼接到字符串上
if (flag) {
strbufappend(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
Systemoutprintln("请输入一段字符串,并以回车结束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(Systemin));
String str = bufreadLine();
StringBuffer strbuf = new NumberSplit()getString(str);
将返回的StringBuffer转换为字符数组
char c[] = strbufdeleteCharAt(0)toString()toCharArray();
对字符数组排序
Arrayssort(c);
输出字符数组
for (int i = 0; i < strbuflength(); i++) {
Systemoutprint(c[i]);
}
}

import javaioBufferedReader;
import javaioInputStreamReader;

import javautilArrays;
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t");
boolean flag = true;

for (int i = 0; i < strlength(); i++) {
char c = strcharAt(i);

判断是否是数字
if (c >= '0'&& c <= '9') {
判断和字符串中的数字是否重复
for (int j = 1; j < strbuflength(); j++) {
if (c == strbufcharAt(j)) {
如果重复,标志位数值为false,并跳出循环;否则标志位设置为true

flag = false;
break;
} else
flag = true;
}
只有在即是数字又不重复的情况下才将改字符拼接到字符串上
if (flag) {
strbufappend(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
Systemoutprintln("请输入一段字符串,并以回车结束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(Systemin));
String str = bufreadLine();

StringBuffer strbuf = new NumberSplit()getString(str);
将返回的StringBuffer转换为字符数组
char c[] = strbufdeleteCharAt(0)toString()toCharArray();

对字符数组排序
Arrayssort(c);
输出字符数组
for (int i = 0; i < strbuflength(); i++) {
Systemoutprint(c[i]);
}
}
如何在Java提取出字符串中的数字段(字符串中有好几段数字)?

public static void main(String args[]) throws Exception { Pattern p = Patternpile("\\d{2,}");这个2是指连续数字的最少个数 String u = "abc435345defsfsaf564565fsabad5467755fewfadfgea"; Matcher m = pmatcher(u); int i = 0; while (mfind()) { Systemoutprintln(mgroup()); i++; } Systemoutprintln(i); }

matlab如何提取字符串中的数字
用正则表达式匹配吧:
>> s = '[数字一12000] [数字二28000]'
s =
[数字一12000] [数字二28000]
>> ms = regexp( s, '(<=\w+)\d+', 'match' )
ms =
'12000' '28000'
然后将字符串转换为数字:
>> num1 = str2num( ms{ 1 } )
num1 =
12000
用matlab 如何提取字符串中的数字?
S = REGEXP(STRING,EXPRESSION)
其中EXPRESSION的取法为:
Any character
[] Any character contained within the brackets
[^] Any character not contained within the brackets
\w A word character [a-z_A-Z0-9]
\W Not a word character [^a-z_A-Z0-9]
\d A digit [0-9]
\D Not a digit [^0-9]
\s Whitespace [ \t\r\n\f\v]
\S Not whitespace [^ \t\r\n\f\v]
那么你的问题就可以使用下面的代码了
>>a='5000xls'
a =
5000xls
>> s=a(regexp(a,'\d'))
s =
5000
这时的s是字符型的,如果你需要数字的话就是用str2num转化一下
祝你学习愉快!
C#如何提取字符串中的数字
string s = "sdka151221jfhj8js-9";
SystemTextRegularExpressionsRegex regex = new SystemTextRegularExpressionsRegex(@"-[1-9]\d");
SystemTextRegularExpressionsMatchCollection matchCollection= regexMatches(s);
再根据你的业务需求处理matchCollection里的内容
PL/SQL中 如何在字符串中提取数字 ?
select regexp_substr('水库新村332号','[0-9]+' ) from dual;--用正则表达式取出数字
select regexp_substr('水库新村332号','[[:digit:]]+') from dual;

对于字符s,利用正则匹配 :var num = sreplace(/[^0-9]/ig, "")。

js正则表达式语法:

正则表达式有两种形式,一种是普通方式,一种是构造函数方式。

普通方式:var reg=/表达式/附加参数
表达式:一个字符串,代表了某种规则,其中可以使用某些特殊字符,来代表特殊的规则,后面会详细说明。
附加参数:用来扩展表达式的含义,目前主要有三个参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。

验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=$\"等字符:"[^%&',;=$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
验证Email地址:"^\w+([-+]\w+)@\w+([-]\w+)\\w+([-]\w+)$"。
验证InternetURL:"^>可以利用自定义函数,从字母数字字符串中,提取数字。
软件版本:Office2007
方法如下:
1从A列字符串中提取数字:
2Alt+F11,在右侧空白处点击右键,插入模块:
3在模块中输入代码如下:
4返回Excel,利用自定义的“取数字”函数,就可以得到结果:

如果就是这个字符串,或者这个格式的字符串的话,还是很方便的。
可以用find函数,找到y的位置,然后将前面的字符串切出来,得到"2"
然后用parseInt函数得到字符串代表的数值。
同理,找到=和x的位置,然后中间的切出来;找到+的位置,后面的切出来,
如果长度是0,那么说明系数是1,否则,用parseInt函数解析出数值。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12935176.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存