我有以下正则表达式:/\*\*[A-z0-9]+\*\*/g
它应该匹配带有double *的单词,如下所示:**this whole sentence should match**
然而,它与空间不匹配。所以**this is a word**
(这将不匹配),但**word**
将匹配(没有空格)。
应匹配:
**this sentence is bold**
**this should also match**
**should**
答案 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
替换为单个空格。由于添加了加号+
,因此将匹配多个空格。