Javascript 替换以某个字母开头的任何数字
小正则表达式帮助?我不知道为什么这不匹配。我能够找到Javascript 替换以某个字母开头的任何数字,javascript,regex,Javascript,Regex,小正则表达式帮助?我不知道为什么这不匹配。我能够找到[]中包含的具有类似模式的内容 我想匹配并选择替换所有以s开头的字符串和所有与之接触的数字,直到被除0-9之外的任何字符打断 我确实想弄明白:) 我以为我在匹配: 任何以空格s开头的内容:/\s(转义空格) 然后贪婪地抓取所有数字:\d+? 全局执行:/g 但我错过了一些东西。小提琴和代码: 代替:/\s(\d+?)/g您可以使用: /\bs\d+\b/g i、 被单词边界包围 您的正则表达式\s\d+?将匹配一个空格,后跟字母s,然后
[
]中包含的具有类似模式的内容
我想匹配并选择替换所有以s开头的字符串和所有与之接触的数字,直到被除0-9之外的任何字符打断
我确实想弄明白:)
我以为我在匹配:
- 任何以空格s开头的内容:
/\s
(转义空格)
- 然后贪婪地抓取所有数字:
\d+?
- 全局执行:
/g
但我错过了一些东西。小提琴和代码:
代替:/\s(\d+?)/g
您可以使用:
/\bs\d+\b/g
i、 被单词边界包围
您的正则表达式\s\d+?
将匹配一个空格,后跟字母s
,然后是一个或多个数字(非贪婪)。我明白了,这将首先使s3
,而不是s324
。因此,这也会起作用:<代码> /\s+d+/g>代码>,但是您的解决方案更好,因为它使用了习惯用法<代码> \b>代码>行为,并且我不必在替换后重新引入空白。谢谢不客气。是的,从需要在替换字符串中使用的意义上讲,匹配空间是有问题的。实际上,我最终使用了/\bf(\d+)\b/g
,因为它在替换函数中为我提供了目标令牌和带分隔符的令牌。我看到文档称之为“捕获”匹配,但并不完全理解。是的,它确实被称为匹配组。当您需要在替换字符串或模式本身中对其进行反向引用时,可以使用它。
/\bs\d+\b/g