正则表达式问题: 如果两个单词同时出现在一行上,则可以匹配 - 但如果它们不同的话 是不是说三个单词分开?
实施例: 匹配和分开 应该匹配 “我试图将文字分开并不成功” 和 “我试图将两个单词分开并不成功” 但不是 “我试图将三个或更多单词分开并不成功”
感谢。
答案 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]
任何非字母,非换行符。这就是它的全部内容。