我正在寻找从源代码中提取" ABC“的方法,其中ABC总是以"X”开头,以"Y“结束。
现在我使用的是:
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)只适用于一小部分源码,当我在整个源码上尝试它时,它不能工作(不确定是因为新行,还是...)
有什么想法吗?
发布于 2013-05-23 20:35:29
描述
此正则表达式将捕获X和Y之间的内部文本
(?:^|\s*?)\b(x(\w*)y)\b(?=\s*|$)

\w*可以替换为您要查找的任何搜索。如果您希望使用.*?匹配新行,那么应该在regex命令中使用m选项,以允许.匹配新行字符。
如果OP包含示例文本,我会进一步定制此解决方案。
群组
组0获取包括前面空格在内的整个匹配字符串
PHP代码示例
<?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
)
)https://stackoverflow.com/questions/16709813
复制相似问题