正则表达 - 单词分开?

时间:2012-11-11 11:43:41

标签: regex

正则表达式问题: 如果两个单词同时出现在一行上,则可以匹配 - 但如果它们不同的话 是不是说三个单词分开?

实施例: 匹配和分开 应该匹配  “我试图将文字分开并不成功” 和  “我试图将两个单词分开并不成功” 但不是  “我试图将三个或更多单词分开并不成功”

感谢。

3 个答案:

答案 0 :(得分:2)

每个单词都可以通过类似\w+\s

的内容来定义

不能超过三个单词可以写为(\w+\s){0,3}

所以你的正则表达式看起来像

/match\s(\w+\s){0,3}apart/

答案 1 :(得分:1)

这应该有效:

match\s+(\S+\s){,2}apart

\s是一个空白字符,\S是一个非空白字符。对于单行方面,您可能希望将\s更改为[^\S\n\r],因为\s还包含换行符\n\r

答案 2 :(得分:0)

不确定。虽然这取决于你如何定义单词。比如说,你只会将字母视为单词,而所有非字母都是分隔符:

firstword[^a-zA-Z\r\n]+(?:[a-zA-Z]+[^a-zA-Z\r\n]+){0,2}secondword

[a-zA-Z]是任何字母字符。 [^a-zA-Z\s]任何非字母,非换行符。这就是它的全部内容。