我刚在想...
当我写(js)
var t="1234ABC4321".match(/.*(ABC).*/)
它返回:
["1234ABC4321", "ABC"]
我可以, "ABC"]
通过(?:...)
但是,组是用于 : 的backreference
,所以我可以\1
稍后参考它们....
问题 :
为什么“ABC”作为匹配项的一部分返回?如果他自己需要它以供以后参考,fine
!但不要把它放在我的收藏中!
有什么逻辑吗(我确定有)?
我刚在想...
当我写(js)
var t="1234ABC4321".match(/.*(ABC).*/)
它返回:
["1234ABC4321", "ABC"]
我可以, "ABC"]
通过(?:...)
但是,组是用于 : 的backreference
,所以我可以\1
稍后参考它们....
问题 :
为什么“ABC”作为匹配项的一部分返回?如果他自己需要它以供以后参考,fine
!但不要把它放在我的收藏中!
有什么逻辑吗(我确定有)?
我不确定我是否理解您的问题,但是在分组时,您得到的第一组是与正则表达式匹配的整个字符串。如果您不想获得辅助组 (the ABC
),请删除括号 ( (
and )
),因为这些表示正则表达式中的组,因此此 regex:/.*ABC.*/
应该为您提供 1 个 group being 1234ABC4321
。
逻辑是 match() 方法检查您的字符串是否与正则表达式匹配。如果是这样,它会返回与正则表达式匹配的字符串部分。如果您使用 () 指定分组,它也会返回组。
如果您希望从字符串中删除 ABC,请使用:
var t="1234ABC4321".replace(/ABC/, "");