【发布时间】:2018-06-15 22:50:35
【问题描述】:
我写了这个正则表达式来匹配翻译字符串。一切正常,除了它只匹配字符串中的单引号'',尽管我已经编写了几个规则来匹配单引号和双引号。
这是我的正则表达式规则:
(Yii::t\()(\'|\")(.*?)(\'|\")\,(\'|\")(.*?)(\'|\")\)
正如预期的那样,(\'|\") 应该匹配两个,但它不匹配。
我也尝试了以下规则:
('|")
(['"])
例子:
成功匹配这些:
Yii::t('backend','My Profile')
Yii::t('backend','Log Out')
与这些不匹配:
Yii::t("backend", "Search...")
Yii::t("backend", 'Sounds')
我用来匹配正则表达式的代码:
re := regexp.MustCompile(`(Yii::t\()(\'|\")(.*?)(\'|\")\,(\'|\")(.*?)(\'|\")\)`)
matches := re.FindAllString(line, -1)
更新: 问题是因为某些字符串包含空格(不是因为引号)。
【问题讨论】:
-
你能提供一些测试输入字符串吗?
-
@Gurman 输入字符串来自 PHP 代码。它搜索项目并在代码中查找匹配项。顺便说一下,我已经用一些例子更新了这个问题。
-
可以肯定的是,请您发布您的分配声明,如
patther := "..."? -
因为多余的空间不匹配!否则匹配!我在 regex101.com 上检查了它。 see here
-
@csabinho 哦。我想是这样的。您能否提供正则表达式来匹配答案中的空格(如果存在)?
标签: regex go regex-group