2012-05-28 33 views
1

表達我有可能結束的字符串與任一經常爲任一或匹配

"/" 

"/?secure=true" 

我需要驗證它。我試過這個

\b(/(/?secure=true)?)\b 

但我沒有找到與正則表達式匹配。 但是,與

^(/(\$secure=true)?)$ 

匹配被發現。但是這不會對我的情況有所幫助,因爲我想要驗證的字符串將以字符爲前綴,如"thisismystring/""thisismystring/?secure=true"

我想知道如何去做這件事。

+0

你用URL/URI類來解析URL嗎?我建議你在做任何驗證之前先將它變成URL或URI。 – nhahtdh

+0

你的最後一個例子是正確的,只是從開始 –

回答

4

這兩種情況將包含

/ 

所以不應該在可選部分。

你把可選部分放在()中?

,逃離問號反斜槓

​​

,並指出,它應該與這個目的,你把$末

/(\?secure=true)?$ 
+0

感謝這工作.. :) – ria

6

您需要使用管道符號(|)指定一個或:

(/|/\?secure=true)$ 

您還需要躲避問號,因爲在這裏,並應指定「$」字符串的結束,而是而不是字符串開頭的「^」。

+0

刪除^,但這也匹配這個:thisismystring /&安全=真 – ria

+1

的確。謝謝,糾正。 –

+0

@ria - 用Kobi的改正試試吧。 –

1

可以這樣做:

/(\?secure=true)?$