我有以下正则表达式:/\*\*[A-z0-9]+\*\*/g
它应该匹配带有double *的单词,就像这样:**this whole sentence should match**
但是它与空间不匹配。所以**this is a word**
(这将不匹配),但**word**
将匹配(没有空格)。
应该匹配:
**this sentence is bold**
**this should also match**
**should**
当主题以两个* s(星号)字符和字符集中的任何字符[A-z0-9](从A到Z的任何ASCII字符或a - z或任何字符)开始时,您编写的表达式将找到匹配项数字如1234567890)并以两个* s(星标开头)字符结尾。这里缺少的是在你的角色集中包含一个空格。通过包含“\”,您指定空间litteral也是表达式中的有效字符。
\*\*[A-z0-9\ ]+\*\*
请注意,这将匹配任意数量的空格,因此像**john doe **
这样的单词仍将被视为有效。如果您只想在一个空间上匹配,您可以考虑:
\*\*(?:[A-z0-9](?:[\ ]?))+\*\*
在字符类中添加空格将解决问题。
/\*\*[A-z0-9 ]+\*\*/g
Wiktor Stribizew的解决方案还包括标签和新行。如果您只想将解决方案包含在空格中
/\*\*[a-z0-9 ]+\*\*/gi
会做。 \s
被一个空格所取代。由于添加了加号+
,因此将匹配多个空格。