2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
id: 587d7db6367417b2b2512b99
|
2020-12-16 00:37:30 -07:00
|
|
|
title: 匹配出现一次或多次的字符
|
2018-10-10 18:03:03 -04:00
|
|
|
challengeType: 1
|
2020-08-04 15:14:01 +08:00
|
|
|
forumTopicId: 301350
|
2021-01-13 03:31:00 +01:00
|
|
|
dashedName: match-characters-that-occur-one-or-more-times
|
2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --description--
|
|
|
|
|
2020-08-04 15:14:01 +08:00
|
|
|
有时,需要匹配出现一次或者连续多次的的字符(或字符组)。这意味着它至少出现一次,并且可能重复出现。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
可以使用`+`符号来检查情况是否如此。记住,字符或匹配模式必须一个接一个地连续出现。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
例如,`/a+/g`会在`"abc"`中匹配到一个匹配项,并且返回`["a"]`。因为`+`的存在,它也会在`"aabc"`中匹配到一个匹配项,然后返回`["aa"]`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
如果它是检查字符串`"abab"`,它将匹配到两个匹配项并且返回`["a", "a"]`,因为`a`字符不连续,在它们之间有一个`b`字符。最后,因为在字符串`"bcd"`中没有`"a"`,因此找不到匹配项。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --instructions--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
想要在字符串`"Mississippi"`中匹配到出现一次或多次的字母`s`的匹配项。编写一个使用`+`符号的正则表达式。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
你的正则表达式`myRegex`应该使用`+`符号来匹配一个或多个`s`字符。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert(/\+/.test(myRegex.source));
|
|
|
|
```
|
|
|
|
|
|
|
|
你的正则表达式`myRegex`应该匹配两项。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert(result.length == 2);
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
`结果`变量应该是一个包含两个`'ss'`匹配项的数组。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
assert(result[0] == 'ss' && result[1] == 'ss');
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
2020-08-04 15:14:01 +08:00
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
let difficultSpelling = "Mississippi";
|
|
|
|
let myRegex = /change/; // Change this line
|
|
|
|
let result = difficultSpelling.match(myRegex);
|
|
|
|
```
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --solutions--
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
```js
|
|
|
|
let difficultSpelling = "Mississippi";
|
|
|
|
let myRegex = /s+/g; // Change this line
|
|
|
|
let result = difficultSpelling.match(myRegex);
|
|
|
|
```
|