From 2a871840d30a299c27f5fff85866c8ccf21f1be3 Mon Sep 17 00:00:00 2001 From: Dongxu Wang Date: Thu, 25 Oct 2018 09:48:57 +0800 Subject: [PATCH 1/2] Add Chinese translation of regular-expression-patterns. --- _zh-cn/tour/regular-expression-patterns.md | 49 +++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/_zh-cn/tour/regular-expression-patterns.md b/_zh-cn/tour/regular-expression-patterns.md index bf416b902b..236f07b72a 100644 --- a/_zh-cn/tour/regular-expression-patterns.md +++ b/_zh-cn/tour/regular-expression-patterns.md @@ -1,6 +1,6 @@ --- layout: tour -title: Regular Expression Patterns +title: 正则表达式模式 discourse: false @@ -13,3 +13,50 @@ language: zh-cn next-page: extractor-objects previous-page: singleton-objects --- + +正则表达式是用来找出数据中的指定模式(或缺少该模式)的字符串。`.r`方法可使任意字符串变成一个正则表达式。 + +```tut +import scala.util.matching.Regex + +val numberPattern: Regex = "[0-9]".r + +numberPattern.findFirstMatchIn("awesomepassword") match { + case Some(_) => println("Password OK") + case None => println("Password must contain a number") +} +``` + +上例中,`numberPattern`的类型是正则表达式类`Regex`,其作用是确保密码中包含一个数字。 + +使用括号之后还可以同时匹配多组正则表达式。 + +```tut +import scala.util.matching.Regex + +val keyValPattern: Regex = "([0-9a-zA-Z-#() ]+): ([0-9a-zA-Z-#() ]+)".r + +val input: String = + """background-color: #A03300; + |background-image: url(img/header100.png); + |background-position: top center; + |background-repeat: repeat-x; + |background-size: 2160px 108px; + |margin: 0; + |height: 108px; + |width: 100%;""".stripMargin + +for (patternMatch <- keyValPattern.findAllMatchIn(input)) + println(s"key: ${patternMatch.group(1)} value: ${patternMatch.group(2)}") +``` +上例解析出了一个字符串中的多个键和值,其中的每个匹配又有一组子匹配,结果如下: +``` +key: background-color value: #A03300 +key: background-image value: url(img +key: background-position value: top center +key: background-repeat value: repeat-x +key: background-size value: 2160px 108px +key: margin value: 0 +key: height value: 108px +key: width value: 100 +``` From 77cf9828037dbed1b32360861ac04246a68f68c4 Mon Sep 17 00:00:00 2001 From: Dongxu Wang Date: Tue, 4 Dec 2018 09:21:55 +0800 Subject: [PATCH 2/2] Polishing based on Liufengyun. --- _zh-cn/tour/regular-expression-patterns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_zh-cn/tour/regular-expression-patterns.md b/_zh-cn/tour/regular-expression-patterns.md index 236f07b72a..4fe48d0820 100644 --- a/_zh-cn/tour/regular-expression-patterns.md +++ b/_zh-cn/tour/regular-expression-patterns.md @@ -29,7 +29,7 @@ numberPattern.findFirstMatchIn("awesomepassword") match { 上例中,`numberPattern`的类型是正则表达式类`Regex`,其作用是确保密码中包含一个数字。 -使用括号之后还可以同时匹配多组正则表达式。 +你还可以使用括号来同时匹配多组正则表达式。 ```tut import scala.util.matching.Regex