[英]Pattern Matching Multiple Word Patterns
我希望有人可以幫助一些正則表達式。 我正在嘗試查找字符串中存在兩種模式的實例(我想我說的是對的)。
這是我的測試字符串:
{"eventid": 2121, "username":"FRED", "starttime": "1550243080", "newprocessname": "C:\\Windows\\System32\\wbem\\WmiPrvSE.exe", "parentprocessname": "C:\\Windows\\System32\\svchost.exe"}
我希望能夠根據一個或多個條件進行搜索。 我遇到的問題是提供多個條件時。 例如,如果 username 好或 newprocessname 好,以下似乎匹配,而我希望它僅在兩者都好時才匹配。
("username"\s*:\s*"(.*?)FRED(.*?)")|("newprocessname"\s*:\s*"(.*?)WINDOWS(.*?)")
我認為我的模式是正確的,但是只有當兩個模式都匹配時,我該如何返回結果?
我希望我的解釋是正確的???
謝謝!
喬恩
如果您使用支持前瞻的正則表達式庫,您可以使用此正則表達式:
^(?=.*"username"\s*:\s*"([^"]*)FRED([^"]*)")(?=.*"newprocessname"\s*:\s*"([^"]*)WINDOWS([^"]*)")
它同時查找username
和newprocessname
標簽(因為前瞻不消耗任何字符)。 請注意,您需要更改.*?
在您的正則表達式中[^"]*
否則您可以將文本比與標簽名稱關聯的實際值更進一步地匹配到字符串中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.