精易论坛

标题: 大神进来看!! [打印本页]

作者: xiaoyu1986    时间: 2014-1-6 12:36
标题: 大神进来看!!
      <#######>
        <user name="/forum/forum/dengjie">邓杰<user>
      <#######>
      
      <#######>
        张淑英
      <#######>

我需要把 (邓杰,张淑英)取在同一组子匹配文本里面,表达式改肿么写丫?中间有N个空格和换行!
{:soso_e154:}



补充内容 (2014-1-6 12:50):
<#.*?>([\s|\S]*?.*?[\s|\S]*?)<#.*?>
我这样取,张淑英可以取到,但是邓杰那里有一串不需要的注释。。咋办。咋办呐。。。

补充内容 (2014-1-6 12:57):
<#.*?>[\s|\S]*?<user.*?">(.*?)<user>[\s|\S]*?<#.*?>
如果是这样,又只能取出邓杰

补充内容 (2014-1-6 12:59):
<#.*?>([\s|\S]*?(?:<user.*?">)?(.*?)(?:<user>)?[\s|\S]*?)<#.*?>
如果是这样,效果是和第一个一样,但子匹配2又是空的。。没有效果...

补充内容 (2014-1-6 13:03):
      <#.*?>
        (?:<user.*?">)?(.*?)(?:<user>)?
      <#.*?>
如果是这样就可以了,但是不能这么写。必须写一行上面,因为还有其它的表达式没写,这只是一部分问题!!咋办,咋办哪。这不行、那不行的...555
作者: 泉丿丶    时间: 2014-1-6 12:36
一条语句最多只能做到 加个"|"判断, 类似于这样。   判断 5 和 6 。。不然你就只能做一个过滤了
作者: Onsxsen    时间: 2014-1-6 12:47
123.zip (146.36 KB, 下载次数: 2)
作者: xiaoyu1986    时间: 2014-1-6 12:52
QQ213847 发表于 2014-1-6 12:47

对不起!!!忘记说了,不能用模块!只能用正则支持库!!
作者: 小爬虫    时间: 2014-1-6 13:26


<user name=.+">(.+)<user>\s+<\S+>\s+<\S+>\s+(.+)

使用全局和多行模式

局_正则.创建 (“<user name=.+#引号>(.+)<user>\s+<\S+>\s+<\S+>\s+(.+)”, 源文本, 假, 真, 真,真) )

作者: xiaoyu1986    时间: 2014-1-6 13:31
小爬虫 发表于 2014-1-6 13:26

恩,谢谢大神的耐心解答!这样不行啊!他两本属于同一个儿子啊!
这样的话就相当于两个儿子啦!要在同一个儿子组里面!也就是说取这两个名字的时候,有那一串注释也行,没有那一串注释也行!
像图片上那样!但是我的表达式不能这样写!所以才着急呐。。。555

作者: 小爬虫    时间: 2014-1-6 13:34
xiaoyu1986 发表于 2014-1-6 13:31
恩,谢谢大神的耐心解答!这样不行啊!他两本属于同一个儿子啊!
这样的话就相当于两个儿子啦!要在同一 ...

什么呀,你匹配后,使用取子匹配就可以得到结果了啊
作者: 小爬虫    时间: 2014-1-6 13:34
xiaoyu1986 发表于 2014-1-6 13:31
恩,谢谢大神的耐心解答!这样不行啊!他两本属于同一个儿子啊!
这样的话就相当于两个儿子啦!要在同一 ...

你看我的代码,和你的不一样
作者: xiaoyu1986    时间: 2014-1-6 13:38
小爬虫 发表于 2014-1-6 13:34
你看我的代码,和你的不一样

我还要把它插进超级列表框的某一列里面。。。有很多!
所以子匹配文本要在一个索引里面!!
作者: 泉丿丶    时间: 2014-1-6 13:39
  看这情况好像是越弄越复杂的样子。
作者: xiaoyu1986    时间: 2014-1-6 13:40
泉丿丶 发表于 2014-1-6 13:39
看这情况好像是越弄越复杂的样子。

要把它取在一个子匹配索引里面!!

补充内容 (2014-1-6 13:41):
还有很多对应的名字的人的信息!插入列表框某一列的时候我不能又擦子匹配一又擦子匹配二吧!

补充内容 (2014-1-6 13:43):
气就气在有的名字有注释,有的名字特么有没有注释。。
让我如何是好。如何去取。。。
作者: 泉丿丶    时间: 2014-1-6 13:46
xiaoyu1986 发表于 2014-1-6 13:40
要把它取在一个子匹配索引里面!!

补充内容 (2014-1-6 13:41):

这样,你把全部的原文本和要取的文本都放出来。我们来看下怎么弄好。
作者: xiaoyu1986    时间: 2014-1-6 13:48
泉丿丶 发表于 2014-1-6 13:46
这样,你把全部的原文本和要取的文本都放出来。我们来看下怎么弄好。

恩,稍等!谢谢大神!!!
作者: Hoibben    时间: 2014-1-6 13:48
如果都是汉字(邓杰,张淑英)的直接用正则匹配汉字部分不就好啦。。。。
作者: 小爬虫    时间: 2014-1-6 13:48
xiaoyu1986 发表于 2014-1-6 13:40
要把它取在一个子匹配索引里面!!

补充内容 (2014-1-6 13:41):

你弄个有各种情况的文本出来
作者: 小爬虫    时间: 2014-1-6 13:49
xiaoyu1986 发表于 2014-1-6 13:38
我还要把它插进超级列表框的某一列里面。。。有很多!
所以子匹配文本要在一个索引里面!!

你用循环,不就可以依次加入到一列中了吗?
作者: xiaoyu1986    时间: 2014-1-6 13:56
xiaoyu1986 发表于 2014-1-6 13:48
恩,稍等!谢谢大神!!!

      <td>00082456</td>
      <td>08</td>
      <td>
        <user name="/forum/forum/dengjie">邓杰<user>
      </td>
      <td>高师</td>
      <td>0011</td>


      <td>00082457</td>
      <td>09</td>
      <td>
        张淑英
      </td>
      <td>中师</td>
      <td>0012</td>


取出:工号     编号    姓名     职称    内部编号  
    00082456    08     邓杰     高师      0011
      00082457    09    张淑英    中师      0012

我找了两个名字注释不一样的!
作者: 小爬虫    时间: 2014-1-6 13:57
你要取出什么内容
作者: xiaoyu1986    时间: 2014-1-6 14:00
小爬虫 发表于 2014-1-6 13:57
你要取出什么内容

问题在16喽。。。其他无压力,就是特么这两个地儿不一样。。头大,,头都痛了!
                                                                         现在是晕的。。我。。{:soso_e109:}

作者: xiaoyu1986    时间: 2014-1-6 14:01
Hoibben 发表于 2014-1-6 13:48
如果都是汉字(邓杰,张淑英)的直接用正则匹配汉字部分不就好啦。。。。

大神,我知道你是大神,。。。
问题在十六楼。。请你帮帮忙!!
作者: 小爬虫    时间: 2014-1-6 14:03


然后取子匹配3的时候,使用 文本区分_只取汉字(子匹配3,)


就这样简单

作者: 泉丿丶    时间: 2014-1-6 14:03
xiaoyu1986 发表于 2014-1-6 13:56
00082456
      08
      

要一条正则搞定 不能做过滤?
作者: xiaoyu1986    时间: 2014-1-6 14:07
泉丿丶 发表于 2014-1-6 14:03
要一条正则搞定 不能做过滤?

恩。。。如果实在没办法,也只有弄两条规则,单独取这名字了。。哎。。。。。。
作者: xiaoyu1986    时间: 2014-1-6 14:12
小爬虫 发表于 2014-1-6 14:03
然后取子匹配3的时候,使用 文本区分_只取汉字(子匹配3,)

文本区分_只取汉子()
这个是模块的吗?不能用模块啊。关键问题是!!!!
作者: 小爬虫    时间: 2014-1-6 14:14
1111.rar (123.76 KB, 下载次数: 2)

被查找内容,你可以用变量代替

作者: 小爬虫    时间: 2014-1-6 14:15
xiaoyu1986 发表于 2014-1-6 14:12
文本区分_只取汉子()
这个是模块的吗?不能用模块啊。关键问题是!!!!

易语言开源,你可以把对应的源码,复制到你自己的程序里,做成自己程序的子程序,不就好了吗?
作者: xiaoyu1986    时间: 2014-1-6 14:15
泉丿丶 发表于 2014-1-6 14:03
要一条正则搞定 不能做过滤?

我现在越弄越乱了。。。大神,你可有妙招丫!一段表达式就行!!
作者: 小爬虫    时间: 2014-1-6 14:27
修改下,达到单击一次增加一个的效果吧

1111.rar (123.57 KB, 下载次数: 0)

作者: 小爬虫    时间: 2014-1-6 14:28
xiaoyu1986 发表于 2014-1-6 14:15
我现在越弄越乱了。。。大神,你可有妙招丫!一段表达式就行!!

如果你若干段代码放在一个大文本行里,完全可以一句代码呀,只是取出加入的时候,用个2个计次循环而已
作者: xiaoyu1986    时间: 2014-1-6 14:30
小爬虫 发表于 2014-1-6 14:28
如果你若干段代码放在一个大文本行里,完全可以一句代码呀,只是取出加入的时候,用个2个计次循环而已

恩,我在试!
作者: xiaoyu1986    时间: 2014-1-6 15:03
泉丿丶 发表于 2014-1-6 14:32
一条语句最多只能做到 加个"|"判断, 类似于这样。  判断 5 和 6 。。不然你就只能做一个过滤了

亲,[\u4e00-\u9fa5]+  这个组和是怎么意思啊!
正则没用过这玩意儿哦!!
作者: 泉丿丶    时间: 2014-1-6 15:05
xiaoyu1986 发表于 2014-1-6 15:03
亲,[\u4e00-\u9fa5]+  这个组和是怎么意思啊!
正则没用过这玩意儿哦!!

-    -  中文。。
作者: xiaoyu1986    时间: 2014-1-6 15:51
泉丿丶 发表于 2014-1-6 15:05
-    -  中文。。

这玩意儿和.*?这种有什么区别。。在小助手上调试没问题,用到程序里这个貌似就不起作用了。。

补充内容 (2014-1-6 15:52):
我用的是正则支持库,没用精易模块!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4