用js 正则表达式 匹配一句话中的市、区、县
时间: 2023-12-10 13:04:37 浏览: 17
可以使用以下正则表达式来匹配一句话中的市、区、县:
```javascript
/(.*?[市区县])(.*?[市区县])?/g
```
其中,`[市区县]`表示匹配任意一个字符是市、区或县中的任意一个,`.*?`表示匹配任意字符0次或多次,但尽可能少的匹配,即匹配到第一个市、区或县就停止。
示例代码如下:
```javascript
const text = "我在北京市海淀区上学。";
const regex = /(.*?[市区县])(.*?[市区县])?/g;
const match = regex.exec(text);
if (match) {
console.log(match[1]); // 北京市
console.log(match[2]); // 海淀区
}
```
上述代码会输出匹配到的市、区、县,如果只匹配到了市,则`match[2]`会是`undefined`。
相关问题
用js 正则表达式 匹配一句话中的任意市、区、县
可以使用如下正则表达式来匹配一句话中的任意市、区、县:
```javascript
/[\u4e00-\u9fa5]+(?:市|区|县)/g
```
其中,`[\u4e00-\u9fa5]+`表示匹配任意一个汉字,`(?:市|区|县)`表示匹配市、区、县中的任意一个,`g`标志表示全局匹配。
例如,对于句子“我来自广东省广州市天河区”,可以使用以下代码进行匹配:
```javascript
const sentence = '我来自广东省广州市天河区';
const matches = sentence.match(/[\u4e00-\u9fa5]+(?:市|区|县)/g);
if (matches) {
console.log(matches); // 输出:["广东省", "广州市", "天河区"]
}
```
这样可以匹配出句子中的所有市、区、县名称。
用js 正则表达式 匹配一句话中的市、区、县 只匹配一次
可以使用如下正则表达式来匹配一句话中的市、区、县,并且只匹配一次:
```javascript
/(?:市|区|县)[^市区县]/
```
其中,`(?:市|区|县)`表示匹配市、区、县中的任意一个,`[^市区县]`表示匹配除市、区、县之外的任意字符。这样可以避免出现“市区”、“区县”等情况的匹配。
例如,对于句子“我来自广东省广州市天河区”,可以使用以下代码进行匹配:
```javascript
const sentence = '我来自广东省广州市天河区';
const match = sentence.match(/(?:市|区|县)[^市区县]/);
if (match) {
console.log(match[0]); // 输出:市天
}
```
注意,这里只匹配了一次,如果需要匹配多次可以使用正则表达式的`g`标志。