Làm thế nào để loại bỏ các từ / ra khỏi văn bản của tôi trong một biến


0

Được rồi vì vậy tôi có một mã lấy văn bản từ một nơi nào đó và lưu nó trong biến "trả lời" nhưng nó có / ký hiệu trộn lẫn với văn bản ... làm cách nào để loại bỏ chúng ... Đây là mã

tell application "Safari"
    quit
end tell

set defaultAnswer to ""
set cancelButton to "Cancel"
set buttonResearch to "ReSearch"

display dialog "Query: " default answer defaultAnswer buttons {cancelButton, buttonResearch} default button buttonResearch cancel button cancelButton with icon 1
copy the result as list to {button_pressed, text_returned}

tell application "Dragon Dictate"
    set listening to false
end tell


if (button_pressed is buttonResearch) and (text_returned is not "") then
    set a to "http://www.wolframalpha.com/input/?i="
    set b to encode_text(text_returned, true, false)
    set c to a & b

    tell application "Safari"
        activate
        open
    end tell
    repeat
        if application "Safari" is running then exit repeat
    end repeat
    delay 1
    tell application "System Events" to tell process "Safari" to set visible to false
    tell application "Safari"
        tell window 1
            set current tab to (make new tab with properties {URL:c})
        end tell
    end tell
end if

say "let me look that up for you now"
delay 6

tell application "Safari" to set theString to (source of document 1)

(* Strip the text and only return the last line*)
set input to do shell script "echo " & (quoted form of theString) & "|sed -n \"/stringified/,/mInput/p\" | sed '$!N;$!D'"



global answer

set offSet1 to "\"stringified\": \""
set offSet2 to "\",\"mInput\""


my strip(offSet1, offSet2, input)

set mywordcount to count of words of answer

if mywordcount is greater than 50 then
    display dialog x
else


end if

tell application "Safari"
    quit
end tell

tell application "Dragon Dictate"
    set listening to true
end tell

on strip(offSet1, offSet2, thedata)
    (* Use the offsets of the pattens to match the text # thru # *)
    set textNumber1 to (offset of offSet1 in thedata)
    set theData1 to text -1 thru (textNumber1 + (count of offSet1)) of thedata
    set textNumber2 to (offset of offSet2 in theData1)
    set textString2 to text from word 1 to (textNumber2 - 1) of theData1
    set thedata to theData1
    set answer to textString2
end strip

-- encoding high-ASCII characters:
on encode_char(this_char)
    set the ASCII_num to (the ASCII number this_char)
    set the hex_list to {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"}
    set x to item ((ASCII_num div 16) + 1) of the hex_list
    set y to item ((ASCII_num mod 16) + 1) of the hex_list
    return ("%" & x & y) as string
end encode_char

-- TEXT ENCODING: encode spaces and high-level ASCII characters (those above 127)
-- encode_URL_A = encode most of the special characters reserved for use by URLs.
on encode_text(this_text, encode_URL_A, encode_URL_B)
    set the standard_characters to "abcdefghijklmnopqrstuvwxyz0123456789"
    set the URL_A_chars to "$+!'/?;&@=#%><{}[]\"~`^\\|*"
    set the URL_B_chars to ".-_:"
    set the acceptable_characters to the standard_characters
    if encode_URL_A is false then set the acceptable_characters to the acceptable_characters & the URL_A_chars
    if encode_URL_B is false then set the acceptable_characters to the acceptable_characters & the URL_B_chars
    set the encoded_text to ""
    repeat with this_char in this_text
        if this_char is in the acceptable_characters then
            set the encoded_text to (the encoded_text & this_char)
        else
            set the encoded_text to (the encoded_text & encode_char(this_char)) as string
        end if
    end repeat
    return the encoded_text
end encode_text

Câu trả lời:


1

Mã này nên làm điều đó. Điều chỉnh nó cho nhu cầu của bạn:

set x to "/1/2/3/4/5/6"
set AppleScript's text item delimiters to "/"
set y to (words of x)
set AppleScript's text item delimiters to ""
get y as string

0

biểu thức chính quy

Một cách là sử dụng biểu thức chính quy. Nhưng thật không may, bạn đã không đề cập đến ngôn ngữ lập trình, vì vậy ví dụ của tôi là ở Bash với sed, nhưng biểu thức chính quy ('s //// g') sẽ có phần giống nhau.

echo "$ANSWER" | sed 's/\///g'

Điều này sẽ thay thế '/' bằng ''. Sed sử dụng các biểu thức thông thường và cực kỳ mạnh mẽ.


Tôi đang dùng iPhone và không thể xác thực regex.
Anh em họ

1
Ngôn ngữ lập trình được đề cập như một thẻ.
William T Froggard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.