正则表达式不匹配单词与空格

问题描述 投票:1回答:3

我有以下正则表达式:/\*\*[A-z0-9]+\*\*/g它应该匹配带有double *的单词,就像这样:**this whole sentence should match**

但是它与空间不匹配。所以**this is a word**(这将不匹配),但**word**将匹配(没有空格)。

应该匹配:

  • **this sentence is bold**
  • **this should also match**
  • **should**
javascript regex
3个回答
1
投票

当主题以两个* s(星号)字符和字符集中的任何字符[A-z0-9](从A到Z的任何ASCII字符或a - z或任何字符)开始时,您编写的表达式将找到匹配项数字如1234567890)并以两个* s(星标开头)字符结尾。这里缺少的是在你的角色集中包含一个空格。通过包含“\”,您指定空间litteral也是表达式中的有效字符。

\*\*[A-z0-9\ ]+\*\*

请注意,这将匹配任意数量的空格,因此像**john doe **这样的单词仍将被视为有效。如果您只想在一个空间上匹配,您可以考虑:

\*\*(?:[A-z0-9](?:[\ ]?))+\*\*

0
投票

在字符类中添加空格将解决问题。

/\*\*[A-z0-9 ]+\*\*/g

0
投票

Wiktor Stribizew的解决方案还包括标签和新行。如果您只想将解决方案包含在空格中

/\*\*[a-z0-9 ]+\*\*/gi

会做。 \s被一个空格所取代。由于添加了加号+,因此将匹配多个空格。

© www.soinside.com 2019 - 2024. All rights reserved.