是否可以使用正则表达式匹配字符串的一半或使用匹配组的一半?
Is it possible to match half of a string using regex or use half of a matched group?
我有一个如下形式的字符串 "some_text_AAAABB_some_other_text"。字符串中有任意偶数个“A”,"BB" 是跟在“A”之后的固定字符串。假设有 2n 'A's 我想使用正则表达式将 'A's 替换为长度为 n.
对于以下字符串
"some_text_AAAABB_some_other_text"
结果会是
"some_text_AABB_some_other_text"
是否可以使用正则表达式实现此目的?
我正在使用 V8 javascript 执行转换。
有两种情况:1)A
的个数是偶数,2)A
的个数是奇数。
如果不关心A
是偶数还是奇数,就用
replace(/(A+)BB/g, "BB")
其中 (A+)
匹配并捕获一个或多个 A
到第 1 组 尽可能多 和 </code> 匹配相同的子字符串(与捕获到第 1 组的数字相同)。由于 <code>BB
是一个固定的字符串,我们只是将它作为文字放入模式中。
如果不想修改A
为奇数的字符串,需要
replace(/(^|[^A-Z])(A+)BB/g, "BB")
这里,第一个捕获组捕获字符串^
的开头或除[A-Z]
以外的任何字符,第二个捕获组捕获1个或多个A
s,并且反向引用现在具有 ID = 2 - 因此,使用
。
我有一个如下形式的字符串 "some_text_AAAABB_some_other_text"。字符串中有任意偶数个“A”,"BB" 是跟在“A”之后的固定字符串。假设有 2n 'A's 我想使用正则表达式将 'A's 替换为长度为 n.
对于以下字符串
"some_text_AAAABB_some_other_text"
结果会是
"some_text_AABB_some_other_text"
是否可以使用正则表达式实现此目的?
我正在使用 V8 javascript 执行转换。
有两种情况:1)A
的个数是偶数,2)A
的个数是奇数。
如果不关心A
是偶数还是奇数,就用
replace(/(A+)BB/g, "BB")
其中 (A+)
匹配并捕获一个或多个 A
到第 1 组 尽可能多 和 </code> 匹配相同的子字符串(与捕获到第 1 组的数字相同)。由于 <code>BB
是一个固定的字符串,我们只是将它作为文字放入模式中。
如果不想修改A
为奇数的字符串,需要
replace(/(^|[^A-Z])(A+)BB/g, "BB")
这里,第一个捕获组捕获字符串^
的开头或除[A-Z]
以外的任何字符,第二个捕获组捕获1个或多个A
s,并且反向引用现在具有 ID = 2 - 因此,使用 。