lazy_src="//pic2.58cdn.com.cn/anjuke_58/921a7fd04017ba9753f227a0728761df?w=1080" src="//img.58cdn.com.cn/ui7/fang/detail/img/default.png" alt="整租|东方文荟苑四区 龥室龥厅龥卫 餼龒平"> 东方文荟苑四区为小区名称,请写出PHP编写的适用多个类似字符串,只匹配字符串小区名称的正则
时间: 2023-12-03 08:03:37 浏览: 265
SingletonText.rar_系统设计方案_C/C++_
如果你想匹配多个类似的字符串中的小区名称,可以使用正则表达式。以下是一个示例代码,用于匹配多个字符串中的小区名称:
```php
<?php
$str1 = '整租|东方文荟苑四区 龥室龥厅龥卫 餼龒平';
$str2 = '整租|某某小区名称 龥室龥厅龥卫 餼龒平';
$str3 = '整租|另一个小区名称 龥室龥厅龥卫 餼龒平';
$pattern = '/[^\x{4e00}-\x{9fa5}0-9a-zA-Z\s]/u'; // 匹配非中文、非数字和非字母的字符,用于去除特殊字符
$namePattern = '/(?<=|)[^\s]+/u'; // 匹配|后的非空白字符,即小区名称
function matchDistrictName($str) {
global $pattern, $namePattern;
$str = preg_replace($pattern, '', $str); // 去除特殊字符
preg_match($namePattern, $str, $matches); // 匹配小区名称
return $matches[0] ?? '';
}
$name1 = matchDistrictName($str1);
$name2 = matchDistrictName($str2);
$name3 = matchDistrictName($str3);
echo "小区名称1:$name1\n";
echo "小区名称2:$name2\n";
echo "小区名称3:$name3\n";
?>
```
上述代码中,使用了两个正则表达式。首先,通过`/[^\x{4e00}-\x{9fa5}0-9a-zA-Z\s]/u`匹配非中文、非数字和非字母的字符,用于去除特殊字符。然后,使用`/(?<=|)[^\s]+/u`匹配|后的非空白字符,即小区名称。
在`matchDistrictName()`函数中,首先去除特殊字符,然后使用正则表达式匹配小区名称,并返回匹配到的结果。
通过调用`matchDistrictName()`函数,你可以匹配多个字符串中的小区名称,并将其存储在相应的变量中。在示例代码中,分别匹配了三个字符串的小区名称并进行输出。
请注意,以上代码仅适用于给定的字符串格式,如果字符串格式有所变化,可能需要相应地调整正则表达式。
阅读全文