首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB2010提取所有重复出现的字符串,并使用-B作为源代码中每个字符串的开始和停止位置

VB2010提取所有重复出现的字符串,并使用-B作为源代码中每个字符串的开始和停止位置
EN

Stack Overflow用户
提问于 2013-05-23 17:08:31
回答 1查看 62关注 0票数 1

我正在寻找从源代码中提取" ABC“的方法,其中ABC总是以"X”开头,以"Y“结束。

现在我使用的是:

代码语言:javascript
复制
  Dim myString As String = source3RTB.Text
    Dim finalString As String = myString.Substring((myString.IndexOf("X")), (myString.IndexOf("Y") - myString.IndexOf("X")) + 1)
    source2RTB.Text = finalString

    sourceRTB.Text = myString.Trim(finalString)

但问题是上面的代码只选择第一个X和第一个Y…

源码是复杂的行集(xxxx)正则表达式不能很好地工作,(?<=X)(.*?)(?=Y)只适用于一小部分源码,当我在整个源码上尝试它时,它不能工作(不确定是因为新行,还是...)

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 20:35:29

描述

此正则表达式将捕获XY之间的内部文本

(?:^|\s*?)\b(x(\w*)y)\b(?=\s*|$)

\w*可以替换为您要查找的任何搜索。如果您希望使用.*?匹配新行,那么应该在regex命令中使用m选项,以允许.匹配新行字符。

如果OP包含示例文本,我会进一步定制此解决方案。

群组

组0获取包括前面空格在内的整个匹配字符串

  1. 获取包括开始和结束标记在内的完整字符串
  2. 获取字母字符的内部字符串

PHP代码示例

代码语言:javascript
复制
<?php
$sourcestring="I'am xlikelyy xupvotey photos of xkittensy on the internet.";
preg_match_all('/(?:^|\s*?)\b(x(\w*)y)\b(?=\s*|$)/i',$sourcestring,$matches);
echo "<pre>".print_r($matches,true);
?>

$matches Array:
(
    [0] => Array
        (
            [0] =>  xlikelyy
            [1] =>  xupvotey
            [2] =>  xkittensy
        )

    [1] => Array
        (
            [0] => xlikelyy
            [1] => xupvotey
            [2] => xkittensy
        )

    [2] => Array
        (
            [0] => likely
            [1] => upvote
            [2] => kittens
        )

)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16709813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档