在emacs lisp中,我只知道函數string-match[-p]
,但我不知道將字符串與字符串進行匹配的方法。emacs lisp中的字符串匹配匹配任意字符串
E.g.假設我有一個由某個函數生成的字符串,並且想知道另一個字符串是否包含它。在很多情況下,string-match-p
會正常工作,但是當生成的字符串包含regexp語法時,它將導致意外的行爲,甚至可能會在包含的正則表達式語法無效的情況下崩潰(例如,不平衡的帶引號的括號爲\(
,\)
)。
- emacs lisp中的某些函數與
string-match-p
類似,但不解釋正則表達式語法? - 由於在C中實現了正則表達式匹配,我假設匹配正確的正則表達式比某些
substring
/string=
循環更快;有沒有一種方法可以將任意字符串轉換爲與該字符串匹配的正則表達式,並且只有該字符串?
謝謝,這在大多數情況下都有幫助。此外,對於一個68字符的查詢字符串和一個≈300字符串來在字符串中進行搜索 - 使用'regexp-quote'的實現在編譯代碼中執行速度快40倍,未編譯代碼執行速度快60倍。對於「string-starts-with」,「string-ends-with」,然而,一個天真的'(string =(substring ...)...)'實現在編譯代碼中快了4倍(未編譯代碼慢了4倍)爲相似的輸入大小。 – kdb