Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换以某个字母开头的任何数字_Javascript_Regex - Fatal编程技术网

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