返回
正则表达式教程:磁力链接(宽松匹配)
正则表达式
2024-02-28 15:48:52
一、正则解释
/^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/
- ^ :匹配字符串的开头。
- magnet: :匹配字符串"magnet:"。
- ? :匹配一个问号。
- xt :匹配字符串"xt"。
- = :匹配一个等号。
- urn:btih: :匹配字符串"urn:btih:"。
- [0-9a-fA-F]{40,} :匹配40个或更多十六进制数字(字母和数字)。
- . *:匹配任何字符任意次。
- $ :匹配字符串的结尾。
二、使用场景
该正则表达式用于匹配磁力链接。磁力链接通常包含一个 "magnet:" 前缀,后面跟一个 "xt=urn:btih:" 参数和一个 40 个或更多十六进制字符的哈希值。
三、代码示例
JavaScript
const regex = /^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/;
const magnetLink = "magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC";
const result = regex.test(magnetLink);
Java
import java.util.regex.Pattern;
public class MagnetLinkMatcher {
public static void main(String[] args) {
String regex = "^magnet:\\?xt=urn:btih:[0-9a-fA-F]{40,}.*import java.util.regex.Pattern;
public class MagnetLinkMatcher {
public static void main(String[] args) {
String regex = "^magnet:\\?xt=urn:btih:[0-9a-fA-F]{40,}.*$";
String magnetLink = "magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC";
Pattern pattern = Pattern.compile(regex);
boolean result = pattern.matcher(magnetLink).matches();
}
}
quot;;
String magnetLink = "magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC";
Pattern pattern = Pattern.compile(regex);
boolean result = pattern.matcher(magnetLink).matches();
}
}
PHP
<?php
$regex = '/^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/';
$magnetLink = "magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC";
if (preg_match($regex, $magnetLink)) {
echo "匹配成功";
}
Python
import re
regex = r"^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*import re
regex = r"^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$"
magnetLink = "magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC"
result = re.match(regex, magnetLink)
quot;
magnetLink = "magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC"
result = re.match(regex, magnetLink)