可以使用正则表达式来匹配连续出现两个标点符号的情况,然后记录出现的位置并统一输出。
以下是一个示例代码,可以检查一段文字中是否连续出现两个标点符号(中英文均可),并将错误位置打印出来:
$text = "这是一段含有标点符号的文本。There are some punctuation marks in this sentence.这是一句话,包含了连续出现的两个中文标点符号。这是一句话,包含了连续出现的两个英文标点符号..这是一句话,包含了连续出现的中英文标点符号!?";
$pattern = "/[\p{P}]{2}/u"; // 匹配连续出现两个标点符号,\p{P}表示标点符号
if (preg_match_all($pattern, $text, $matches, PREG_OFFSET_CAPTURE)) {
foreach ($matches[0] as $match) {
$position = $match[1];
$error = $match[0];
echo "错误位置:$position,错误内容:$error<br>";
}
} else {
echo "未检测到连续出现两个标点符号。";
}
这段代码中,首先使用正则表达式匹配连续出现两个标点符号的情况,然后使用preg_match_all()函数将所有匹配到的结果存入数组$matches中。最后,使用一个循环遍历数组$matches,将错误位置和错误内容打印出来。