我試圖確保在字串中只使用兩種型別的特殊字符(分號、逗號或空格)。
有效案例:
- 可以包含字母數字字母和數字
- 可以包含特殊字符:/。
- 分隔 URL 時最多可以包含兩種特殊字符:分號、逗號、空格和分號或空格和逗號。
- 分隔 URL 時不能混合特殊字符分號和逗號
例如,這應該匹配,因為它只使用一種特殊字符(分號):
https://hello.com/example1;https://hello.com.com/example2;https://hello.com.com/example3
這應該通過,因為它混合了兩種允許的特殊字符(空格和分號):
https://hello.com/example1; https://hello.com.com/example2 ;https://hello.com.com/example3
這應該通過,因為它混合了兩種型別的特殊字符(逗號和分號):
https://hello.com/example1; https://hello.com.com/example2 , https://hello.com.com/example3 ; https://hello.com.com/example4
這應該會失敗,因為它在 URL 之間混合了兩種不允許的特殊字符(逗號和分號):
https://hello.com/example1;,https://hello.com.com/example2,https://hello.com.com/example3
這是我的正則運算式:
^[A-Za-z0-9:=_\/\\.\\?] (?=([,;\s])|$)(?:\1[A-Za-z0-9:=_\/\\.\\?] )*$
目前它只允許在字串具有一種特殊字符時進行匹配,但我需要它來匹配字串之間的多種型別,如下所示: https ://regex101.com/r/i9BF6X/1
uj5u.com熱心網友回復:
鑒于您提供的四個示例,我對問題的理解是分隔符(逗號和分號)可以在同一個匹配項(如第三個示例中)中找到,當且僅當它們沒有分隔相同的兩個網址(如第 4 個示例)。
一種選擇可能是使用以下正則運算式:
^https:\/(\/[\w\.] ) ( *(;|,) *https:\/(\/[\w\.] ) )
解釋:
^: 字串開頭https:\/(\/[\w\.] ): 第一個網址https:\/:https:/(\/[\w\.] ):斜線序列以及字母數字字符和點的組合
( *(;|,) *https:\/(\/[\w\.] ) ):“分隔符 url”的序列*(;|,) *: 可選空格 逗號或分號 可選空格https:\/:https:/(\/[\w\.] ): 斜線序列和字母數字組合
$: 字串結束
在這里試試。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/476804.html
標籤:javascript 正则表达式
