Ruby의 pty를 시험해보기 위해 약간의 테스트를하고 있었지만 제대로 할 수 없었습니다. 주된 문제는 정규 표현식이 욕심이 없다는 것입니다.
The whole output is ||||
Ruby의 욕심없는 정규 표현식 : pty and expect
password1234
Thank you! Your password is: p||||
output1 = |
|
output1 = |password1234
|
output1 = |Thank you! Your password is: p|
: 출력을 인쇄 할 때, 나는이 얻을 불행하게도
require 'pty'
require 'expect'
#$expect_verbose = true
#answer = %r/Thank you! Your password is: \w+/
PTY.spawn("ruby ./inputs.rb") do |reader, writer, pid|
writer.sync = true
reader.expect(/[email protected] password:/) do |output|
writer.puts("password1234")
end
#reader.expect(answer) do |output|
#reader.expect(/Thank you! Your password is: \w{6,}/) do |output|
#reader.expect(/Thank you! Your password is: (\w+)/) do |output|
reader.expect(/Thank you! Your password is: \w+/) do |output|
puts "The whole output is ||||#{output}||||\n"
output.first.each do |line|
puts "output1 = |#{line}|\n"
end
end
end
:
이
은inputs.rb
라는 프로그램입니다 :
puts "Give me [email protected] password:"
password = gets.chomp()
puts "Thank you! Your password is: #{password}"
그리고 이것은 test.rb
라는 프로그램입니다 이유가 무엇입니까
Thank you! Your password is: p||||
Thank you! Your password is: password1234||||
대신 ?
정상입니까? 경우 :이 동작을 변경할 수있는 방법이 있습니까? 내가 시도
것들 : Rubular 나에
- 정규 표현식 : 그것은 작동합니다.
- 모든 댓글이 달린 대안 : 아무도 일하지 않습니다 (전체 비밀번호 가져 오기).
- http://www.42klines.com/2010/08/14/what-to-expect-from-the-ruby-expect-library.html
루비 버전 : 1.8.7
우분투 : 10.04 (맑은 Lynx는) 당신이 가질 수있는 아이디어를 주셔서 감사합니다
. 고맙습니다.
실제 질문을 정확히 찾으려면 질문을 정리해야합니다. – sawa