关于php 正则匹配的匹配问题,希望能详细点!

查看: 526|回复: 9
正则表达式的问题,有空格取不出来匹配数!
阅读权限70
在线时间 小时
结帖率: (1/1)
这是源文本:
19 dg36g6h424kkd61f34g2a638ak77gg 0 1
20 36e7c9b7bb98b1caeff8g2eh81ed99 0 1
21 8cgkh586ahhg47ghgc9ak4cc0iddb1 0 1
想取出红色字体的文本,求大神!
在精易助手里面能取出来,放到就不行了!
是不是空格的原因啊?
QQ截图53.jpg (136.16 KB, 下载次数: 0)
01:33 上传
下面是精易助手的生成代码。
&&正则_匹配批量整数型&本子程序采用【】生成。成功返回匹配的数量,失败返回0。源文本文本型&&&欲被匹配的文本局_正则正则表达式&采用的 正则表达式 支持库,无此支持库的请到此下载:局_搜索结果搜索结果√0局_匹配数整数型&匹配数量局_计次整数型&&如果真 (局_正则.创建 (“.. (.*) 0 1”, 假) = 假)信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, )返回 (0)局_正则.多行模式 = 假局_搜索结果 = 局_正则.搜索全部 (源文本)局_匹配数 = 取数组成员数 (局_搜索结果)如果真 (局_匹配数 = 0)信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, )返回 (0)计次循环首 (局_匹配数, 局_计次)输出调试文本 (“匹配文本 ” + 到文本 (局_计次) + “ 中的子匹配文本 1:” + 局_搜索结果 [局_计次].取子匹配文本 (源文本, 1, ))计次循环尾 ()返回 (局_匹配数).版本 2
.子程序 正则_匹配批量, 整数型, , 本子程序采用【精易编程助手】生成。成功返回匹配的数量,失败返回0。
.参数 源文本, 文本型, , 欲被匹配的文本
.局部变量 局_正则, 正则表达式, , , 采用的 正则表达式 支持库,无此支持库的请到此下载:
.局部变量 局_搜索结果, 搜索结果, 静态, &0&
.局部变量 局_匹配数, 整数型, , , 匹配数量
.局部变量 局_计次, 整数型
.如果真 (局_正则.创建 (“.. (.*) 0 1”, 假) = 假)
信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, )
.如果真结束
局_正则.多行模式 = 假
局_搜索结果 = 局_正则.搜索全部 (源文本)
局_匹配数 = 取数组成员数 (局_搜索结果)
.如果真 (局_匹配数 = 0)
信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, )
.如果真结束
.计次循环首 (局_匹配数, 局_计次)
输出调试文本 (“匹配文本 ” + 到文本 (局_计次) + “ 中的子匹配文本 1:” + 局_搜索结果 [局_计次].取子匹配文本 (源文本, 1, ))
.计次循环尾 ()
返回 (局_匹配数)
求大神解答一下,,,
这样写简单!~根据你的条件写个例子,仅供参考,如果可以采用最佳答案,谢谢!
补充内容 ( 02:15):
你上述提供的精易助手生成的代码,适用于模块,但是实际上你要是用精易模块的话,直接提取里面的正则表达式即可!~
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至
可获得加分喔。友情提醒:本版被采纳的主题可在
帖子申请荣誉值,获得 1点 荣誉值,荣誉值可兑换终身vip用户组哦。快捷通道: →
阅读权限165
在线时间 小时
签到天数: 4 天结帖率: (1/1)
这样写简单!~根据你的条件写个例子,仅供参考,如果可以采用最佳答案,谢谢!
(540.5 KB, 下载次数: 4)
02:09 上传
点击文件名下载附件
1110.JPG (28.78 KB, 下载次数: 0)
02:04 上传
未命名.JPG (31.54 KB, 下载次数: 0)
02:08 上传
1.jpg (28.89 KB, 下载次数: 0)
02:07 上传
补充内容 ( 02:15):
你上述提供的精易助手生成的代码,适用于模块,但是实际上你要是用精易模块的话,直接提取里面的正则表达式即可!~
\S{30}这样就行了&
热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!
您可以选择打赏方式支持他
阅读权限165
在线时间 小时
签到天数: 4 天结帖率: (3/4)
\d{2}\s(\S{30})
补充内容 ( 02:46):
\d{2}.(\S{30})
补充内容 ( 02:52):
此处应该有鼓励~
看了这个回答,似乎对正则的了解又深了一点
您可以选择打赏方式支持他
阅读权限165
在线时间 小时
签到天数: 4 天结帖率: (3/4)
(36.5 KB, 下载次数: 6)
02:57 上传
点击文件名下载附件
此处应该有鼓励~
您可以选择打赏方式支持他
阅读权限165
在线时间 小时
签到天数: 4 天结帖率: (1/1)
\d{2}\s(\S{30})
补充内容 ( 02:46):
又是小s,我记住了
您可以选择打赏方式支持他
阅读权限30
在线时间 小时
结帖率: (0/5)
过来看看,学习学习
您可以选择打赏方式支持他
阅读权限70
在线时间 小时
结帖率: (1/1)
这样写简单!~根据你的条件写个例子,仅供参考,如果可以采用最佳答案,谢谢!
4 3aa6g1gb05g8fgd0gb99g 0 1
15:53:41 失效卡密
5 ca31gi0c80i76a0kah8gkei1387ffe 0 1
15:53:41 失效卡密
6 a64c5i96af45kbfk82fgge8ed9ki3e 0 1
15:53:41 失效卡密
我以为后面的汉子可以忽略掉.....
请问后面有汉字怎么弄?正则表达式应该是什么?
您可以选择打赏方式支持他
阅读权限70
在线时间 小时
结帖率: (1/1)
4 3aa6g1gb05g8fgd0gb99g 0 1
15:53:41 失效卡密
5 ca31gi0c80i76a0kah8gkei1387ffe 0 1
15:53:41 失效卡密
6 a64c5i96af45kbfk82fgge8ed9ki3e 0 1
15:53:41 失效卡密
我以为后面的汉子可以忽略掉.....
请问后面有汉字怎么弄?正则表达式应该是什么?
您可以选择打赏方式支持他
阅读权限70
在线时间 小时
结帖率: (1/1)
这样写简单!~根据你的条件写个例子,仅供参考,如果可以采用最佳答案,谢谢!
为啥我不能选择最佳答案??点击没有反应!!!.....
您可以选择打赏方式支持他
精易论坛 - 有你更精彩 /1
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,企业QQ: ,邮箱:@
Powered by
粤公网安备 25问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
求个正则表达式,匹配所有ASCII的字符?网上搜不到全是复制粘贴没有符合的,还求大神指导!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
/[\x00-\xff]+/g
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App正则匹配的一点问题,快帮我匹配一下 - 问答 - Yii Framework 中文社区
正则匹配的一点问题,快帮我匹配一下
悬赏 66 金钱
$str = "Mozilla/5.0 (L Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36"
怎么能匹配到这中间的Nexus 6 呀,
以Android开头,以Build结尾?
啊。怎么匹配呀,正则这儿实在是太弱了。
不一定要写正则啊,截取字符串也可以
如果是安卓客户端的请求,这个信息头基本上都是这些格式,
Dalvik/1.6.0 (L U; Android 4.3; vivo X3L Build/JLS36C)
Mozilla/5.0 (L U; Android 2.3.6; zh- GT-S7500 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML
, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (L Android
5.1.1; vivo X7 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
个人认为Build才是查找的关键,可以这么做
* 查找Build字符串所在的位置,并截取字符串到这个位置为止
* 得到:Mozilla/5.0 (L Android 5.1.1; Nexus 6
$str= substr($str, 0, strpos($str, "Build"));
* 查找";"符号最后出现的位置,并且以这个位置开始截取字符串,直到最后
$str= substr($str, strrpos($str,";")+1, strlen($str));
* 去除前后空格
$str=trim($str);
没关注过这个信息头,单从这一个字串来说,没法确定。
至少得知道可能会有哪几种情况会出现才能有答案。
你是要检查一个字符串里是否有Nexus 6吗?
共 1 条回复
我要吧它取出来
= "Mozilla/5.0 (L Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36";
$rule = "/[\s\S]*(Nexus[\s]*6)[\s\S]*/i";
preg_match($rule,$str,$matches);
echo $matches[1];
拿去试试吧^.^
您需要登录后才可以回答。 |正则表达式关于匹配 数字的问题 - ITeye问答
加入有如下一句:
今天我买了5本书,花了500块。
我希望用正则表达式匹配出来的结果为5,500
不知道应该怎么写呢。试了好多,都不对,希望大家帮忙问题补充:看了下大家的答案,额,似乎我没有说明白问题?
我写的那句只是一个例子,不是要写死在这句了,不知道是什么样的字符串。
只知道里面可能有数字,要匹配出数字来。
我现在写的假如字符串里如果同时有5,500的时候,匹配出来的结果是5,5,500。
我想要的结果是5,500.
不知道这样说明白了没有。
用set来保存就可以实现唯一了,set调用add方法的时候会自动检查唯一性
while(matcher.find())
set.add(matcher.group());
正则匹配,然后唯一性过滤.
上面的那个有问题,看看这个
public static void main(String[] args) {
String regex=
String text=
Pattern pattern=
text="12今天我买了5本书,花了500块22.fdsfsd3412今天我买了5本书,花了500块fsd.";
regex="买了\\d+本[^0-9]*,花了\\d+块";
String regexTemp="[^0-9&&[^,]]";
pile(regex);
Matcher matcher=pattern.matcher(text);
StringBuffer sb=new StringBuffer();
while(matcher.find()){
System.out.println("***********begin*************");
System.out.println(matcher.end()+":"+matcher.group(0));
System.out.println("***********end********************");
textTemp=matcher.group();
sb.append( pile(regexTemp).matcher(textTemp).replaceAll("")+"\n");
System.out.println("sb"+sb.toString());
以下是PHP的版本,请对比Java的复杂程度:
$s = '今天我买了5本书,花了500块。';
echo preg_replace('/^\D+(\d+)\D+(\d+)\D+$/','$1,$2', $s);
测试通过,最终显示
5,500
我写了个java的
public static void main(String[] args) {
String regex=
String text=
Pattern pattern=
text="12今天我买了5本书,花了500块34";
regex="[^0-9]*买了\\d+本.*花了\\d+块[^0-9]*";
String regexTemp="[^0-9&&[^,]]";
pile(regex,Pattern.MULTILINE);
Matcher matcher=pattern.matcher(text);
StringBuffer sb=new StringBuffer();
// System.out.println(text);
//System.out.println(matcher.find());
//System.out.println(matcher.toString());
while(matcher.find()){
System.out.println("***********begin*************");
System.out.println(matcher.end()+":"+matcher.group());
System.out.println("***********end********************");
textTemp=matcher.group();
sb.append( pile(regexTemp).matcher(textTemp).replaceAll("")+"\n");
System.out.println("sb"+sb.toString());
var str = '今天我买了5本书,花了500块。';
nums = str.match(/今天我买了([0-9]*)本书,花了([0-9]*)块。/);
alert(nums[1] + "," + nums[2]);
写的够死吧……
\d匹配不了吗?
pattern="(\d+)[^,]+(\,)[^,]+(\d+)"
match.group(1) + match.group(2) + match.group(3)
已解决问题
未解决问题

我要回帖

更多关于 python 正则匹配 的文章

 

随机推荐