试图找到适当的正则表达式

时间:2014-10-30 13:01:38

标签: javascript regex

我正在尝试制作一个与以下两个网址匹配的正则表达式:

http://honey.myPage.com/national/
http://honey.myPage.com/national 

我的意思是网址结尾为斜线而没有结束斜线 我能够制作以下模式,目前只能识别带斜线的模式。 任何人都可以建议我采用不同的模式来识别这两种网址

/\.myPage\.com\/(\D+[\/])+(index.htm[l]?)?/

任何帮助都将得到帮助

2 个答案:

答案 0 :(得分:2)

你能用 \ D 澄清你的意图吗? 它匹配任何非数字,所以也匹配/,?,!,... 我不认为这是你的意图吗?

假设你想匹配:

.myPage.com/pretty/mutch/any/uri/provided
.myPage.com/pretty/mutch/any/uri/provided/
.myPage.com/pretty/mutch/any/uri/provided/index.htm
.myPage.com/pretty/mutch/any/uri/provided/index.html

我选择这样的事情:

\.myPage\.com(\/\w+)+?(\/(index\.html?)?)?

(\/\w+)+? - 匹配/sometext,重复一次或多次,但尽可能少地工作(正确处理其余规则所必需的)

(\/(index\.html?)?)?应该被分解:

/(index.html?)? )? - 整个块是可选的

/(index.html的?)? - 将匹配//index.htm/index.html

希望这有帮助。

答案 1 :(得分:1)

问号代表0或1.因此您必须在斜杠后添加问号。 将其更改为:

/\.myPage\.com\/(\D+\/?)+(index.htm[l]?)?/