社区
脚本语言
帖子详情
求求求求求 正则表达式:x位数字左补空格或右补空格至5个长度!
superdc
2005-05-24 10:25:47
求求求求求 正则:x位数字左补空格或右补空格至5个长度!
请大虾们出招啊~~~ 白银一百两先送上~
...全文
393
21
打赏
收藏
求求求求求 正则表达式:x位数字左补空格或右补空格至5个长度!
求求求求求 正则:x位数字左补空格或右补空格至5个长度! 请大虾们出招啊~~~ 白银一百两先送上~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superdc
2005-06-17
打赏
举报
回复
放分没有先后和多少之分 我只是随便给 怎么把100分完就好了 呵呵
superdc
2005-06-17
打赏
举报
回复
又改了 改成 (?! {5}).{5} 这才是偶要的 活活 今天结帐
superdc
2005-06-05
打赏
举报
回复
最后结论
.*?\d+.*? 测试过 速度非常快
不做长度限制了 因为我不知道怎么做 而且我的业务里面已经限制了长度了 谢谢楼上各位 暂时不结帐 等大家都看到了再来 学习嘛 呵呵
xyzxyz1111
2005-05-29
打赏
举报
回复
$_ = " 111";
$max_length = 100;
if(/^(.{0,4}|.{6, $max_length}|( *\d+)|(\d+ *))$/ and ($2 or $3)){
print "OK\n";
}
这个确实“使用一个正则 一次匹配正个串”$2 和$3变量是匹配的附加结果。
fibbery
2005-05-28
打赏
举报
回复
我的理解是,楼主有一个很长的字符串,其中有一个位置上是数字,他要处理的是字符串中的数字这一部分。
superdc
2005-05-28
打赏
举报
回复
对 很长的一字符串
使用一个正则 一次匹配正个串
我所问的这个地方是其中一部分 这部分就是 shhgs() 所说“我大约知道你的意思了,是不是给一个5字符的字符串,判断是不是全部由数字和空格组成,其中空格可以在数字的前面,也可以在数字的后面,但就是不能夹在数字当中?
” 但 if (length $_ == 5) && ($_ =~/[ ]*\d+|\d+[ ]*/) 这个满足不了我的要求 “使用一个正则 一次匹配正个串 ”
大家继续 这下我估计能懂了吧?? 呵呵
shhgs
2005-05-27
打赏
举报
回复
我大约知道你的意思了,是不是给一个5字符的字符串,判断是不是全部由数字和空格组成,其中空格可以在数字的前面,也可以在数字的后面,但就是不能夹在数字当中?
如果是这个,那太简单了。
if (length $_ == 5) && ($_ =~/[ ]*\d+|\d+[ ]*/)
brianlu
2005-05-27
打赏
举报
回复
if( /^(\w|[ ]){5}$/ && /(^\w{1,5}[ ]*$)|(^[ ]{0,4}\w+$)/)
请搂主看清楚我写的if语句: /^(\w|[ ]){5}$/ && .........
zgxbliss
2005-05-27
打赏
举报
回复
不说不足五位补空格的吗?要定长是五位的话,先判断字符串长度为5,再用正则式匹配就行了呗,
没有必要非用一个正则式来做吧
fibbery
2005-05-27
打赏
举报
回复
superdc;
本来我觉得自己已经明白了,可现在我又被你说糊涂了。我没能理解你说的是什么。你举一个你在实际中能够遇到的例子,并给出预期结果。
zgxbliss
2005-05-27
打赏
举报
回复
可以从程序结构上改善啊,把每个字段的检验做成一个函数,只要逻辑清楚,容易读懂就可以了吧
superdc
2005-05-27
打赏
举报
回复
xyzxyz1111(程序员的自我修养)所说的正是我目前正在使用的表达式, (if(/^(\d\s{4}|\d{2}\s{3}|\d{3}\s{2}|\d{4}\s{1}|\d{5}|\s\d{4}|\s{2}\d{3}|\s{3}\d{2}|\s{4}\d)$/){
)
我的使用比较特殊,每次校验数据会很多 数据也很长,正个表达式加起来估计都有200多长度了 我问的这个东西只是里面一个小字段的校验 所以。。。。。。。。。。。。。 哎
xyzxyz1111
2005-05-26
打赏
举报
回复
没有规定必须是一个正则表达式,所以可以
$_ = "1111 ";
if(/^\s*\d+|\d+\s*$/){
if(/^[ \d]{5}$/){
print "OK\n";
}
}
如果要求只能用一个正规表达式
$_ = " 111";
if(/^(\d\s{4}|\d{2}\s{3}|\d{3}\s{2}|\d{4}\s{1}|\d{5}|\s\d{4}|\s{2}\d{3}|\s{3}\d{2}|\s{4}\d)$/){
print "OK\n";
}
superdc
2005-05-26
打赏
举报
回复
感谢 brianlu(-) 、 zgxbliss(星)
但两位的都不能满足我的要求
所列出的表达式都忘了最重要的一点 总长度是 5
/^\s*\S{1,5}\s*$/ 只限制了\S是最大5个长度
brianlu(-) 所说的(^\w{1,5}[ ]*$)|(^[ ]{0,4}\w+$)/ 也是同样的问题
再次感谢两位 请大家继续! 谢谢
另: 正则表达式支持 计算嘛? 比如 : 如果 1>0 进行 x匹配 否则进行y匹配 这个1>0需要是真正的计算哦 可能是 100/50 呵呵 好象是没有这样的功能哈? :)
再另: 我的开发环境 VC++ / Microsoft vbscript regular expressions5
我知道regular在perl中是大量使用的 此处必定藏龙卧虎 所以来求助 活活 :) 谢谢大家参与
继续继续继续。。。。。。。。。。。。。。
zgxbliss
2005-05-26
打赏
举报
回复
my $str = "11 1";
if($str =~ /^\s*\S{1,5}\s*$/){
print "OK\n";
}
brianlu
2005-05-26
打赏
举报
回复
用Perl写的,写2个正则表达式来判断
/^(\w|[ ]){5}$/
/(^\w{1,5}[ ]*$)|(^[ ]{0,4}\w+$)/
if(/^(\w|[ ]){5}$/ && /(^\w{1,5}[ ]*$)|(^[ ]{0,4}\w+$)/){
print "legal!\n";
}else{
print "illegal!\n";
}
shhgs
2005-05-25
打赏
举报
回复
为什么要用正则表达式? "%05d" % string.atoi(x)很简单嘛。
如果一定要用正则表达式,Python实现
def f(m) :
s = m.group(0)
if len(s) >= 5 :
return s
else :
return (5-len(s)) * '0' + s
re.sub('\d+', f, s)
至于Perl的,大致也差不多,不过就是要玩$&了。
superdc
2005-05-25
打赏
举报
回复
顶一下
谢谢楼上兄台 八过我要的不是这个 我要是是数据校验的正则表达式~ 活活活活~~
superdc
2005-05-25
打赏
举报
回复
好嘛 我就再详细的说他一说
我现在要做数据校验 我允许的数据是5位长度的 如果不够5位就补空格,可以补在左边或右边,但是不在中间 也就是说“ 11”或“11 ”都可以 但是 “1 1”就不可以 我需要这个正则表达式
各位大人看清楚了啊 活活活活 晕
fibbery
2005-05-25
打赏
举报
回复
呵呵,楼主,提问的时候最好能举出一个例子来,能容易让别人理解,这样可以提高解决问题的效率.
加载更多回复(1)
正则表达式
全解析+常用示例
在开始写这篇文章之前,我的心里还是纠结的。我在问自己要不要写这篇东西,关于相似的内容网上多如牛毛,而且还不乏珍品,况且,就算我写了也不一定能写的好。但是现在你既然看到了,那说明我还是写了出来。就算是对自己学习的一个总结吧!同时也把常见的常用的
正则表达式
给收集整理出来,以便用到的时候不用满世界的找。 关于
正则表达式
一直都是个让很多程序员都觉得很郁闷的一个东西,我觉得创造
正则表达式
的那个家伙简直就是
python
正则表达式
数字
开头_Python基础 :
正则表达式
一、前言1.1
正则表达式
简述
正则表达式
是一种查找以及字符串替换操作。
正则表达式
在文本编辑器中广泛使用,比如
正则表达式
被用于:1.检查文本中是否含有指定的特征词2.找出文中匹配特征词的
位
置3.从文本中提取信息,比如:字符串的子串4.修改文本与文本编辑器相似,几乎所有的高级编程语言都支持
正则表达式
。在这样的语境下,“文本”也就是一个字符串,可以执行的操作都是类似的。一些编程语言(比如Perl,Java...
JS
正则表达式
完整版
目录 引言 第一章
正则表达式
字符匹配攻略 1 两种模糊匹配 2. 字符组 3. 量词 4. 多选分支 5. 案例分析 第1章 小结 第二章
正则表达式
位
置匹配攻略 1. 什么是
位
置呢? 2. 如何匹配
位
置呢? 3.
位
置的特性 4. 相关案例 第二章小结 第三章
正则表达式
括号的作用 1. 分组和分支结构 2. 引用分组 3. 反向引用 4. 非捕获分组 ...
JavaScript中常用的
正则表达式
整理
JavaScript中常用的
正则表达式
整理 匹配中文字符的
正则表达式
: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空白行的
正则表达式
:ns*r 匹配HTML标记的
正则表达式
:< (S*?)[^>]*>.*?|< .*? /> 匹配首尾空白字符的
正则表达式
:^s*|s*$ 匹配Email地址的
正则表达式
:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的
正则表达式
:[a-zA-z]+://[^s]
常用
正则表达式
匹配中文字符的
正则表达式
: [/u4e00-/u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^/x00-/xff] 评注:可以用来计算字符串的
长度
(一个双字节字符
长度
计2,ASCII字符计1) 匹配空白行的
正则表达式
:/n/s*/r 评注:可以用来删除空白行 匹配HTML标记的
正则表达式
: ]*>.*? ¦ 评
脚本语言
37,720
社区成员
34,239
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章