我似乎每年都會寫一個Reg表達式,並且總是最終尋求幫助。REGEX查找字符串中的字符串
這裏是一個字符串(它是來自Solr的搜索字符串),我想選擇搜索詞的每個實例。
這裏的輸入: -
http://server:8080/solr/app/select?q=(title_st_en%3Atheory+OR+title_st_ar%3Atheory+OR+title_st_da%3Atheory+OR+title_st_fr%3Atheory+OR+title_st_de%3Atheory+OR+title_st_it%3Atheory+OR+title_st_no%3Atheory+OR+title_st_sv%3Atheory+OR+title_st_ru%3Atheory+OR+title_st_es%3Atheory+OR+title_st_bg%3Atheory+OR+title_st_cs%3Atheory+OR+title_st_tr%3Atheory+OR+title_st_nl%3Atheory+OR+title_st_zh-cn%3Atheory+OR+title_st_zh-tw%3Atheory+OR+title_st_hr%3Atheory+OR+title_st_et%3Atheory+OR+title_st_he%3Atheory+OR+title_st_hu%3Atheory+OR+title_st_ja%3Atheory+OR+title_st_ko%3Atheory+OR+title_st_pl%3Atheory+OR+title_st_ro%3Atheory+OR+title_st_th%3Atheory+OR+title_st_vi%3Atheory+OR+content_stemming_en%3Atheory+OR+content_stemming_no%3Atheory+OR+(backfields%3Atheory))+AND+(((virtualPath%3A%22%5C%5CSERVER%5C%5CU_TEST%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_SYSTEM%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_!CONTACTS%22)+AND+-(virtualPath%3A%22%5C%5CSERVER%5C%5CU_TEST%5C%5CL%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_SYSTEM%5C%5CL%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_NDSF%5C%5CL%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_NDSFMAG%5C%5CL%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_NDSFRA%5C%5CL%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_NM%5C%5CL%22+OR+virtualPath%3A%22%5C%5CSERVER%5C%5CP_INTERNAL%5C%5CL%22+OR+virtualPath%3A
,我需要選擇每一個「%3A
」和「+OR
」以及最後的「%3Atheory
))」之間的任何文本 - 在這種情況下,單詞「theory
」但每次都會變成另外一個詞 - 唯一已知的是它將是'%3A
'和'+OR
'之間的任何字母文本。它需要停止在「+AND+
」
據/%3A(.*?)[+OR]/g
我已經得到了 - 這是好的開始。我猜... 它沒有找到「%3Atheory))
」,並沒有在「+AND+
」停止
我正在努力'找到這個'或者'找到那個'以及停止在一個字符串。
有人提供一些指導?
類似[this](https://regex101.com/r/xhEq1j/1)? –
是的!我沒有意識到我必須逃避每個關閉支架。幾乎在那裏 - 我需要停下'+ AND +'表達。 –
贊[so](https://regex101.com/r/xhEq1j/2)? –