除了空格超过5个空格的任何字符

时间:2011-03-04 11:34:52

标签: regex whitespace

在下面的示例中,两个人之间的对话我想只匹配询问器文本。 (左边的文字)

Hello, how are you?                 I am fine.
What is your name?                  My name is Simon.
What does Simon say?                Put your hands on your head.

当我在每行上单独执行正则表达式时,我想要提取

Hello, how are you?
What is your name?
What does Simon say?

但是,我还想在提问文本中留出错误的余地,允许在单词之间留出多达5个空格。提问者和回答者之间的空白数量总是超过5个字符。

我试过这个

([^ ]| {0,5})*

但是抓住了整行

这个

[^( {0,5})]+

但我想你不能在括号之间使用括号来首先评估内部文本并将其指定为单个字符。

欢迎任何想法,谢谢:)

4 个答案:

答案 0 :(得分:3)

尝试使用此正则表达式进行捕获:

^(.*?) {5}

*?是非贪婪的匹配,意味着它会找到最短的匹配而不是最长的匹配。这应该可以满足您的需求。

查看在线工作:rubular

答案 1 :(得分:1)

This does it

^(.*?) {5,}

答案 2 :(得分:0)

(.*[^ ])[ ]{5}.*

答案 3 :(得分:0)

为什么不使用split而不是匹配?

str.split("\s{6,}")