我有一个正则表达式,用于测试输入的字符流。我想知道是否有一种方法可以将正则表达式与输入进行匹配,并确定它是否是消耗整个输入缓冲区的部分匹配? IE。在正则表达式完成之前到达输入缓冲区的末尾。我希望实现决定是等待更多输入字符,还是中止操作。
换句话说,我需要确定哪个是真的:
在匹配正则表达式之前到达输入缓冲区的末尾
例如
"foo"=~/^foobar/
正则表达式完全匹配
例如
"foobar"=~/^foobar/
正则表达式匹配失败
例如
"fuubar"=~/^foobar
输入未打包。
最佳答案
这是您正在解决的场景吗?您正在等待文字字符串,例如'foobar'。如果用户键入部分匹配项,例如'foo',你想继续等待。如果输入不匹配你想退出。
如果您使用的是文字字符串,我会编写一个循环来按顺序测试字符。或者,
If (input.Length < target.Length && target.StartsWith(input))
// keep trying
如果您尝试匹配更复杂的正则表达式,我不知道如何使用正则表达式来做到这一点。但我会先阅读更多有关该平台如何实现正则表达式的信息。
汤姆
关于ruby - 部分正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759783/