正常表達式的使用非常糟糕,所以我通常在解析字符串時使用糟糕的方法和解決方法。我需要更好地使用正則表達式。這對我來說似乎很簡單,但我甚至不知道從哪裏開始。使用正則表達式查找子字符串的開始和結尾
下面是從我的設備輸出的字符串:
testString = IP:192.168.5.210\rPlaylist:1\rEnable:On\rMode:HDMI\rLineIn:unbal\r
例子: 我想找到該設備是否開啓或關閉。我需要搜索字符串「Enable:」,然後找到回車符並確定Enable:和\ r之間的詞是關閉還是打開。看來這就是正則表達式的用途,或者我完全誤解了它。
有人能指出我正確的方向嗎?
更多信息 - 也許我需要擴大這個問題。
根據答案,查找設備是否啓用看起來相當簡單。因爲我得到一個返回字符串類似於一個鍵/值對,更令人煩惱的是確定:和回車之間的子字符串。許多這些對具有顯着不同的長度的響應,例如DeviceLocation,DeviceName,IPAddress。實際上,設備通過返回整個狀態列表(48個鍵/值對)來響應發送給它的每個命令,然後我必須解析該列表,即使我只需要知道一個屬性。
也基於你的回答....正則表達式不是要走的路。
感謝您的任何幫助。 規範
爲什麼你需要添加一個正則表達式的不必要的複雜性到這個簡單的問題?使用IndexOf定位* Enable:*,然後使用基於該索引位置+ Length('Enable:')的SubString讀取兩個字符,它們將是* On *或* Of *。 –
如果您認爲這是一種方法,那就試試吧。當在SO上發佈時,您應該提供具體的代碼示例並且詢問,而不是在空中。 –
事實上,由於你正在處理一個簡單的字符串,它更簡單。如果您知道它將始終包含* Enable:*和* On *或* Off *,只需使用'IndexOf(':On')'。如果結果大於0,則啓用;如果它是0,那不是。完成。一小段代碼。 –