我正在尝试创建一个表达式来抓取所有后面没有空格的逗号和所有冒号。
我已经尝试了(,([^\s]))|([:])
,它很接近,但似乎也抓住了没有空格的逗号之后的字符。
我也尝试了(,\s+)|([:])
,它会抓住所有冒号和所有逗号,后面跟空格和空格。
我想要选择的内容包含在* *中,如下所示:
您好,我的名字是*:* tibsar *,*好吗?
有什么想法吗?
答案 0 :(得分:9)
我认为这个正则表达式可以完成这项工作。
正则表达式: (,(?=\S)|:)
<强>解释强>
(?=\S)
此positive lookahead
检查,
之后的字符whitespace
,但不会捕获匹配。 [^\s]
与\S
相同。
并使用了更改|
来匹配可能出现在任何地方的:
。
<强> Regex101 Demo 强>
<强> To match , at end of line(if needed). 强>
(,([^\s]))|([:])
和(,\s+)|([:])
出错的地方?
(,([^\s]))
匹配逗号后跟非空白,但匹配中捕获。
(,\s+)
Straightaway匹配逗号后跟空格,因此完全错误。