我正在尝试制作一个与以下两个网址匹配的正则表达式:
http://honey.myPage.com/national/
http://honey.myPage.com/national
我的意思是网址结尾为斜线而没有结束斜线 我能够制作以下模式,目前只能识别带斜线的模式。 任何人都可以建议我采用不同的模式来识别这两种网址
/\.myPage\.com\/(\D+[\/])+(index.htm[l]?)?/
任何帮助都将得到帮助
答案 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]?)?/