批处理如何用正则提取字符串中间的数字,和结尾的数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理如何用正则提取字符串中间的数字,和结尾的数字相关的知识,希望对你有一定的参考价值。
原始字符串:"id=11111&user=2222"(没有分号)
需要提取11111和2222,如何用批处理的正则表达式执行?
百度很久没找到,代码越短越好,谢谢!
原始字符串没有引号
假设源文件名为test.txt(请自定义)
@echo offfor /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
- 单词边界
(?!\/)
- 当前位置右侧不能有 /
(这是负前瞻)。
【讨论】:
以上是关于批处理如何用正则提取字符串中间的数字,和结尾的数字的主要内容,如果未能解决你的问题,请参考以下文章