我有一個可以包含字母、數字、特殊字符或模式(例如*/my-variable/*)的字串。
我想基本上忽略特殊字符和任何模式(可能是多個),并采用剩余的文本以確保它是可用的文本。我的目標是查看這個字串并將其標記為有效與否,只要它有一些正常的單詞就可以,但如果它只是模式和特殊字符,則不是。
這是針對 PHP 的(如果這是必要的資訊)。我想避免做多個preg_replace并嘗試提高效率并保持一行:將我正在尋找的字母數字字符回傳給我。
這是一個示例字串
Thank You!1!11 | )(^%& */person-first_name/* For Being Awesome */person-c235/* - Number 39658!? $450 | And Some moretextstuff
到目前為止我得到的正則運算式
[\s\w\d]{1,}|(\*\/[^\/\*]*\/\*)
我正在使用regex101.com。它進行了一些不錯的匹配,但我不知道如何排除這些模式。我可能不應該|在那里有那個“或”。如有必要,可能必須為特殊字符添加另一個排除組,但似乎它們被[\s\w\d]部分很好地忽略了。
uj5u.com熱心網友回復:
使用 php,您可以使用這樣的模式來排除模式*/..../*或非單詞字符,除了空白字符:
(?:\*/.*?/\*|[^\w\s] )(*SKIP)(*F)|\w
部分圖案:
(?:替代品的非捕獲組\*/.*?/\*從*/../*非貪婪匹配到在第一次出現時停止|或者[^\w\s]匹配一個或多個非單詞字符,不包括空白字符
)關閉非捕獲組(*SKIP)(*F)跳過比賽|或者\w匹配 1 個或多個單詞字符
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/527110.html
標籤:php正则表达式
