【发布时间】:2019-03-13 23:18:10
【问题描述】:
我正在尝试将 ruby 中的正则表达式写入应符合以下条件的模式
/{{\d+}}/双花括号,里面有一个数字
/.*{{\d+}}.*/可以在其前面或后面加任意数量的字符
/.*{{\d+}}.*\m/可以是多行
直到这部分它正在工作
它接受像 "afaf{{}}{{" 这样的字符串,所以我做了修改
/(?:(.*\{\{\d+\}\}.*)\g<1>\m)/可以有多个*{{number}}*
例如。
empty string
xyz
{{345345}}
any thing{{234234324}}
<abc>{{234234}}<-
any chars{{234}}
{{234234}}any chars
{{4}}
无效的
{{non intgers}}
{{5345345}}{{
}}3345345{{
{345345}
{{34534}
}
4545
{234234
{{
5345
}}
但它没有按预期工作。
【问题讨论】:
-
字符串可以包含独立的
{和}吗?如果没有,请尝试/\A(?:[^{}]*{{\d+}})*[^{}]*\z/。 -
no { 后跟 {,并用 }} 正确关闭
-
您能举个例子说明一下吗?请添加到问题正文中。请检查rubular.com/r/EuBB1IXqMH 是否有效。
-
它是如此接近唯一的问题是它接受独立{或} {{234234}}}这个无效
-
伟大的工作,它的工作原理补充说,在答案中,我会再推荐一件事如何在分组和递归中变得更好:)