如何使用正则表达式开头的所有单词:标点符号?

时间:2011-07-18 14:54:55

标签: regex

如何对以:标点符号开头的所有单词使用正则表达式?

这会使所有单词以a开头:

\ba\w*\b

我将字母a更改为:的那一刻,整件事情都失败了。我应该逃离结肠,如果是这样,怎么办?

2 个答案:

答案 0 :(得分:4)

\b匹配非字母数字和字母数字字符,因此如果您将其放在:之前,则只有在冒号前面有一个字母/数字时才会匹配。

因此,您需要在此处删除\b或指定在这种情况下确切构成边界的内容,例如:

(?<!\w):\w*\b

这将确保:之前没有字母/数字/下划线。当然,这假设了一种支持lookbehind断言的正则表达式。

答案 1 :(得分:2)

问题是当单词以冒号\b开头时:与单词的开头不匹配,因为冒号不是单词字符。试试这个:

(?<=:)\w*\b

这使用(非捕获)look-behind断言前一个字符是冒号。