我认为我并没有真正获得RegEx的东西,所以我需要帮助匹配以下简单模式:
SOME_TEXT _Syn: SYN_TEXT _Ant: ANT_TEXT
引号是装饰性的,X_TEXT
是任何文本(不包含_Syn
:或_Ant
:这是特殊缩写),_ Sen或_Ant部分是可选的
我需要在数组中获取SOME_TEXT
,SYN_TEXT
和ANT_TEXT
例如,如果_Syn部分不存在(输入为SOME_TEXT _Ant: ANT_TEXT
),结果应为[SOME_TEXT, '', ANT_TEXT]
使用延迟修饰符尝试了不同的方法,但未能实现它。
答案 0 :(得分:2)
/(.*?)(?:_Syn:(.*?))?(?:_Ant:(.*?))?$/
重要的部分是?
之后的.*
会使他们不情愿(不贪婪)而最后的$
会强制匹配,尽管所有可选的匹配都是如此
答案 1 :(得分:1)
使用此正则表达式
var n=str.match(/(SOME|SYN|ANT)_TEXT/g);
n
将包含匹配字符串数组