如何为此制作正则表达式?
how to make a regular expression for this?
我想对字符串 "{{c1::tiger}} 做一个正则表达式是
一种 {{c2::animal::something movable}}" 来得到单词 "tiger" 和 "animal",我已经做了这个表达式 \{\{c\d+::((?P<value>.*?)(:{0,2})(.*?))\}\}
,我也想用 group('value')
实现 this.The 结果词 "tiger" 正是我所需要的,但总是得到错误的结果 "animal::something movable"(我的意思是 "animal"),谁能帮我解决这个问题?谢谢。
您尝试的模式包含 4 个捕获组,对于当前示例数据组 1 和组 3 为空。
要获得 tiger
,您可以使用带有否定字符的单个捕获组 class:
\{\{c\d+::(?P<value>.*?)(?:::|}})
如果结束 }}
必须存在,您可以使用:
\{\{c\d+::(?P<value>.*?)(?:::.*)?}}
这适用于您的示例字符串:
c1::(?P<valueTiger>[a-z]*).*?c2::(?P<valueAnimal>[a-z]*)
\{\{c\d+::(?P<value>[^:}]+)(?::{0,2}([^}]+))?\}\}
我想对字符串 "{{c1::tiger}} 做一个正则表达式是
一种 {{c2::animal::something movable}}" 来得到单词 "tiger" 和 "animal",我已经做了这个表达式 \{\{c\d+::((?P<value>.*?)(:{0,2})(.*?))\}\}
,我也想用 group('value')
实现 this.The 结果词 "tiger" 正是我所需要的,但总是得到错误的结果 "animal::something movable"(我的意思是 "animal"),谁能帮我解决这个问题?谢谢。
您尝试的模式包含 4 个捕获组,对于当前示例数据组 1 和组 3 为空。
要获得 tiger
,您可以使用带有否定字符的单个捕获组 class:
\{\{c\d+::(?P<value>.*?)(?:::|}})
如果结束 }}
必须存在,您可以使用:
\{\{c\d+::(?P<value>.*?)(?:::.*)?}}
这适用于您的示例字符串:
c1::(?P<valueTiger>[a-z]*).*?c2::(?P<valueAnimal>[a-z]*)
\{\{c\d+::(?P<value>[^:}]+)(?::{0,2}([^}]+))?\}\}