我有一个数字序列4191159999,我想用regex只替换88中第一个出现的9数字(结果是41881159999)。我尝试了(O9;"(9.+?)";"8"),但结果是4181588,也尝试了(O9;"^\d{2}9+";"8"),但它删除了前两个数字,结果是81159999,我不能使用负前瞻与bigquery或谷歌工作表...
(O9;"(9.+?)";"8")
(O9;"^\d{2}9+";"8")
mbyulnm01#
只需替换:
^ # Match at the start of the string ([^9]*) # a capturing group of 0 or more non-'9' characters, 9 # then a literal '9'.
...与:
$188
其中$1是我们捕获的非9序列,88表示文字88。试试on regex101。试试看:
$1
9
88
console.config({ maximize: true }); const regex = /^([^9]*)9/; const text = '4191159999'; console.log(text.replace(regex, '$188'));
<script src="https://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
pbwdgjma2#
例如,在GoogleSheets中,您可以使用([0-8]*)开始捕获组1中的可选数字0-8然后匹配一个单9,并在替换中使用组1后接88
([0-8]*)
^([0-8]*)9
请参见regex demo。示例:
=REGEXREPLACE(TO_TEXT(A1), "^([0-8]*)9", "$188")
aemubtdh3#
console.log('4191159999'.replace(/9/, 88));
3条答案
按热度按时间mbyulnm01#
只需替换:
...与:
其中
$1
是我们捕获的非9
序列,88
表示文字88
。试试on regex101。
试试看:
pbwdgjma2#
例如,在GoogleSheets中,您可以使用
([0-8]*)
开始捕获组1中的可选数字0-8然后匹配一个单9,并在替换中使用组1后接88
请参见regex demo。
示例:
aemubtdh3#