在其他单词之间查找单词
Finding words in between other words
我有一个单词长度不同的句子。下面句子中的 x 代表随机词,x1、x2、x3 代表固定词——不变的词。基本上,x1 就是 x1,x2 就是 x2,x3 就是 x3。首先,我需要检查 x1、x2 和 x3 之间是否有 x。如果它们之间有一个 x,我需要 x 的值。而已。我该怎么做?
x x1 x x2 x3 x
P.Sx1、x2、x3之间可以有1个以上的x,左右也可以有1个以上的x。
preg_match_all('/x1\s+(.+?)\s+x2\s+(.+?)\s+x3/i', $string, $matches);
会将您想要的内容放入 $matches[1](x1 和 x2 之间的匹配项)和 $matches[2](x2 和 x3 之间的匹配项)。正则表达式搜索所有出现的 x1,然后是空格,其他内容,空格,然后是 x2,另一个 whitespace-anything-whitespace-sequence,最后是 x3。
如果您希望中间的字符串作为单独的单词,您可以对它们执行 preg_split('/\s/', ...)。上面的正则表达式也可以适应它,但这会使检索更加复杂。
示例:
<?php
$string = 'The quick brown fox jumps over the lazy dog';
preg_match_all('/quick\s+(.+?)\s+fox\s+(.+?)\s+lazy/', $string, $matches);
var_dump($matches);
?>
产量
array(3) {
[0]=>
array(1) {
[0]=>
string(35) "quick brown fox jumps over the lazy"
}
[1]=>
array(1) {
[0]=>
string(5) "brown"
}
[2]=>
array(1) {
[0]=>
string(14) "jumps over the"
}
}
恕我直言,这是正确的结果。
如你所见,$matches[1][0]包含quick(或x1)和fox(或x2)之间的词,$matches[2][0]包含fox(或x2)之间的词x2) 和惰性 (或 x3)。如果找到更多的出现,它们将存储在 $matches[1][1] 和 $matches[2][1] 下,依此类推,计算第二个索引。遍历 $matches[0] 的索引就足够了,因为所有结果集都将包含完整匹配和两个部分匹配。
我有一个单词长度不同的句子。下面句子中的 x 代表随机词,x1、x2、x3 代表固定词——不变的词。基本上,x1 就是 x1,x2 就是 x2,x3 就是 x3。首先,我需要检查 x1、x2 和 x3 之间是否有 x。如果它们之间有一个 x,我需要 x 的值。而已。我该怎么做?
x x1 x x2 x3 x
P.Sx1、x2、x3之间可以有1个以上的x,左右也可以有1个以上的x。
preg_match_all('/x1\s+(.+?)\s+x2\s+(.+?)\s+x3/i', $string, $matches);
会将您想要的内容放入 $matches[1](x1 和 x2 之间的匹配项)和 $matches[2](x2 和 x3 之间的匹配项)。正则表达式搜索所有出现的 x1,然后是空格,其他内容,空格,然后是 x2,另一个 whitespace-anything-whitespace-sequence,最后是 x3。
如果您希望中间的字符串作为单独的单词,您可以对它们执行 preg_split('/\s/', ...)。上面的正则表达式也可以适应它,但这会使检索更加复杂。
示例:
<?php
$string = 'The quick brown fox jumps over the lazy dog';
preg_match_all('/quick\s+(.+?)\s+fox\s+(.+?)\s+lazy/', $string, $matches);
var_dump($matches);
?>
产量
array(3) {
[0]=>
array(1) {
[0]=>
string(35) "quick brown fox jumps over the lazy"
}
[1]=>
array(1) {
[0]=>
string(5) "brown"
}
[2]=>
array(1) {
[0]=>
string(14) "jumps over the"
}
}
恕我直言,这是正确的结果。
如你所见,$matches[1][0]包含quick(或x1)和fox(或x2)之间的词,$matches[2][0]包含fox(或x2)之间的词x2) 和惰性 (或 x3)。如果找到更多的出现,它们将存储在 $matches[1][1] 和 $matches[2][1] 下,依此类推,计算第二个索引。遍历 $matches[0] 的索引就足够了,因为所有结果集都将包含完整匹配和两个部分匹配。