하지만 문자열 앞에있는 모든 것을 변수에 넣을 수 있습니까?
이 작업을 수행하는 가장 간단한 방법은 regexp
당신에게 경기 대신 일치하는 하위 문자열의 인덱스를 말할 얻을 수 있습니다. 그런 다음 string range
을 사용하여 원하는 부품을 얻을 수 있습니다. 이 시점에서
regexp -indices "Shipping \(\[^\f]+)" $VarWithWholePage match shipinfo
,
match
및
shipinfo
는 경기가 입력 문자열 내에서 일어난 위치를 정확하게 나타내는 숫자 쌍을해야합니다.
일치하는 경우 성공했습니다.
# Now we can get the bits before (and after) the match with simple operations
set beforeMatch [string range $VarWithWholePage 0 [expr {[lindex $match 0] - 1}]]
set afterMatch [string range $VarWithWholePage [expr {[lindex $match 1] + 1}] end]
# Convert the string ranges into the matched substrings so that your code still works
set match [string range $VarWithWholePage {*}$match]
set shipinfo [string range $VarWithWholePage {*}$shipinfo]
각주 : 그것은 일반적으로 괄호로 정규 표현식을 넣어 아주 좋은 생각으로 당신의 RE는 관용구 {Shipping ([^\f]+)}
로 기록 될 것이다. 그것은 역 슬래시와 싸웁니다.
\ f를 사용하면 페이지 끝까지 여러 문장을 읽을 수 있습니다. – Frank
고마워요.이게 정확히 내가 원하는 걸 잘 했어. – Frank
프랭크.이 대답이 네가 원하는대로하면 받아 들여야 해. –