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

时间:2018-01-03 07:46:07

标签: javascript regex

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

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

应匹配:

  • **this sentence is bold**
  • **this should also match**
  • **should**

3 个答案:

答案 0 :(得分:1)

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

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

请注意,这将匹配任意数量的空格,因此**john doe **之类的字词仍然有效。 如果你只想在一个空间上匹配,你可以考虑:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

会做的。 \s替换为单个空格。由于添加了加号+,因此将匹配多个空格。