使用js将"北京市"和"直辖区"和"东城区"这三个字符串转化为["北京市", "市辖区", "东城区"]
时间: 2023-07-08 12:55:28 浏览: 35
可以使用字符串的split方法来实现:
```
let str = "北京市直辖区东城区";
let arr = str.split("直辖区");
arr.splice(1, 0, "市辖区");
console.log(arr); // ["北京市", "市辖区", "东城区"]
```
首先使用split方法将字符串按照"直辖区"进行分割,得到一个数组。然后使用splice方法将"市辖区"插入到数组的第二个位置,最后得到结果数组。
相关问题
使用js将"北京市"和"直辖区和"东城区"这三个字符串转化为["北京市", "市辖区", "东城区"]
可以使用正则表达式和字符串的replace方法来实现:
```
let str = "北京市直辖区东城区";
let arr = str.replace(/(北京市)(市辖区)?(东城区)?/, (_, p1, p2, p3) => [p1, p2 || "市辖区", p3 || ""]);
console.log(arr); // ["北京市", "市辖区", "东城区"]
```
解释一下正则表达式的含义:
- (北京市):匹配 "北京市",并将其捕获到分组1中。
- (市辖区)?:匹配 "市辖区",并将其捕获到分组2中(注意加上问号表示可选)。如果没有匹配到,则默认为空字符串。
- (东城区)?:匹配 "东城区",并将其捕获到分组3中(同样加上问号表示可选)。如果没有匹配到,则默认为空字符串。
然后使用replace方法,将匹配到的三个分组作为参数传入回调函数中,将其组成一个数组返回即可。
使用PHp实现,正则匹配去除字符串中 省、自治区、直辖市后面的内容,包括省、自治区、直辖市
可以使用正则表达式来实现。具体代码如下:
```php
$str = "北京市朝阳区";
$pattern = '/(.*?(省|自治区|直辖市))/';
$result = preg_replace($pattern, '', $str);
echo $result; // 输出:朝阳区
```
解释一下代码:
1. 定义字符串 `$str`,其中包含了省、自治区、直辖市的信息。
2. 定义正则表达式 `$pattern`,使用圆括号将省、自治区、直辖市的信息作为一个分组,使用问号和星号实现非贪婪匹配,即匹配到第一个省、自治区、直辖市就停止匹配。
3. 使用 `preg_replace` 函数将匹配到的省、自治区、直辖市的信息替换为空字符串。
4. 输出结果,即去除了省、自治区、直辖市后面的内容。
需要注意的是,这个正则表达式只能匹配到最后一个省、自治区、直辖市,如果字符串中包含多个省、自治区、直辖市,那么只会去除最后一个省、自治区、直辖市后面的内容。