JS RegEx:与可选部件简单匹配

时间:2013-07-05 16:23:18

标签: javascript regex

我认为我并没有真正获得RegEx的东西,所以我需要帮助匹配以下简单模式:

SOME_TEXT _Syn: SYN_TEXT _Ant: ANT_TEXT

引号是装饰性的,X_TEXT是任何文本(不包含_Syn:或_Ant:这是特殊缩写),_ Sen或_Ant部分是可选的

我需要在数组中获取SOME_TEXTSYN_TEXTANT_TEXT

例如,如果_Syn部分不存在(输入为SOME_TEXT _Ant: ANT_TEXT),结果应为[SOME_TEXT, '', ANT_TEXT]

使用延迟修饰符尝试了不同的方法,但未能实现它。

2 个答案:

答案 0 :(得分:2)

/(.*?)(?:_Syn:(.*?))?(?:_Ant:(.*?))?$/

重要的部分是?之后的.*会使他们不情愿(不贪婪)而最后的$会强制匹配,尽管所有可选的匹配都是如此

答案 1 :(得分:1)

使用此正则表达式

var n=str.match(/(SOME|SYN|ANT)_TEXT/g);

n将包含匹配字符串数组