批处理如何用正则提取字符串中间的数字,和结尾的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理如何用正则提取字符串中间的数字,和结尾的数字相关的知识,希望对你有一定的参考价值。

原始字符串:"id=11111&user=2222"(没有分号)
需要提取11111和2222,如何用批处理的正则表达式执行?
百度很久没找到,代码越短越好,谢谢!
原始字符串没有引号

假设源文件名为test.txt(请自定义)

@echo off
for /f "tokens=2,4 delims==&" %%a in ('type test.txt^|findstr "id=.*&user=.*"') do (
echo;id   是 %%a 
echo;user 是 %%b
)
pause

参考技术A 用替换,等号换冒号,&换逗号。转数组取值追问

可以给具体代码吗?这些在其他语言实现很简单,但批处理方面我是新手,所以才来问的

追答

页面传值取值用Request

追问

能给具体代码?我批处理是新手,找很久不懂才来问的

追答

没有代码,你这个不只是新手的问题了,是基础完全不会

追问

批处理我只学了一点,应付一些小功能,没有必要为一点小功能专门学吧,所以才来求代码,这个代码很长还是怎么说?不回了,你自个装逼去吧。

参考技术B var str = "id=11111&user=2222";
var reg = /(\d)+/g;
str.match(reg);

10 位或 6 位数字的正则表达式不应以“/”开头和结尾,也可以是字符串中的单个单词 [重复]

【中文标题】10 位或 6 位数字的正则表达式不应以“/”开头和结尾,也可以是字符串中的单个单词 [重复]【英文标题】:Regex for 10 or 6 digit number should not start and end with '/' and can also be a single word in a string [duplicate] 【发布时间】:2021-08-28 21:39:29 【问题描述】:

需要 6 位或 10 位数字的正则表达式可以以空格开头和结尾,也可以是整个字符串中的单个单词。它不应以“/”开头和结尾。

例如:

    My Zip-code is 101010. Please update. -> 101010 9090909090 is my mobile number -> 9090909090 00/9090909090/000000/ -> 应该找不到任何号码 9090909090 -> 9090909090

我试过了

\b(\d11|\d10|\d6)\b

正则表达式,但无法处理第三种情况。

【问题讨论】:

那你有什么尝试? \b(\d11|\d10|\d6)\b \b 与“不以/ 开头或结尾”的条件不匹配,因为它匹配零长度字符(单词边界) @thinkgruen 你对上述问题陈述有什么建议 是的***.com/questions/9306202/…。此外,您还需要一个后视镜 【参考方案1】:

你可以使用

\b\d6(?:\d4)?\b(?!\/)

查看regex demo 和regex graph:

详情

\b - 单词边界 \d6 - 任意六位数 (?:\d4)? - 可选的四位数字序列 \b - 单词边界 (?!\/) - 当前位置右侧不能有 /(这是负前瞻)。

【讨论】:

以上是关于批处理如何用正则提取字符串中间的数字,和结尾的数字的主要内容,如果未能解决你的问题,请参考以下文章

如何用正则表达式去除一个字符串里面的数字和小数点以外的字符

正则表达式:数字开头中间字母结尾数字

正则表达式提取数字

js 如何用正则表达式提取数据

如何在EXCEL中提取中间部分的数字或字母

js 正则表达式提取某一段字符