正则表达式再次有趣......
以http://something.com/en/page为例
我想测试/ en /包括正斜杠的完全匹配,否则它可以匹配字符串其他部分的'en'.
对于我以外的其他人,我确信这很容易!
编辑:
我在javascript中使用它作为string.match()
那真的取决于正在执行正则表达式的编程语言,但实际的正则表达式很简单
/en/
Run Code Online (Sandbox Code Playgroud)
对于.Net,以下代码正常工作:
string url = "http://something.com/en/page";
bool MatchFound = Regex.Match(url, "/en/").Success;
Run Code Online (Sandbox Code Playgroud)
这是JavaScript版本:
var url = 'http://something.com/en/page';
if (url.match(/\/en\//)) {
alert('match found');
}
else {
alert('no match');
}
Run Code Online (Sandbox Code Playgroud)
DUH
感谢Welbog和Chris Ballance做出本应该是最明显的观点.这不需要正则表达式来解决.它只是一个包含声明.正则表达式只应在需要的地方使用,这应该是我的首要考虑因素,而不是最后一个考虑因素.
如果您尝试/en/专门匹配,则根本不需要正则表达式.只需使用您的语言相当于contains测试该子字符串.
如果您尝试匹配两个斜杠之间的URL的任何两个字母部分,则需要如下表达式:
/../
Run Code Online (Sandbox Code Playgroud)
如果要捕获双字母代码,请将句点括在括号中:
/(..)/
Run Code Online (Sandbox Code Playgroud)
根据您的语言,您可能需要转义斜杠:
\/..\/
\/(..)\/
Run Code Online (Sandbox Code Playgroud)
如果你想确保匹配字母而不是任何字符(包括数字和符号),你可能想要使用这样的表达式:
/[a-z]{2}/
Run Code Online (Sandbox Code Playgroud)
这将被大多数正则表达式变体识别.
同样,您可以通过这种方式转义斜杠并添加捕获组:
\/([a-z]{2})\/
Run Code Online (Sandbox Code Playgroud)
如果你不需要逃脱它们:
/([a-z]{2})/
Run Code Online (Sandbox Code Playgroud)
此表达式将匹配表单/xy/中的任何字符串,其中x和y是字母.所以它会匹配/en/,/fr/,/de/,等.
在JavaScript中,您需要转义版本:\/([a-z]{2})\/.
| 归档时间: |
|
| 查看次数: |
24320 次 |
| 最近记录: |