最后我决定从“haystack”中删除无效字符,因为标准正则表达式无法实现
我必须捕获以下"Capture... Test: Something",
我必须匹配的文字字符串"Capture... Test Something"
问题是匹配失败的原因是:丢失,:可能是之前从文字字符串(*, /, ?, :, ", <, >, |)
"Capture... Test Something"
之一
如何允许捕获文字字符串,但允许上面列出的几个字符不匹配?
注意:我唯一可以用来匹配的是"Capture... Test Something"
,最后我需要返回"Capture... Test: Something"
的匹配
我无法修改“Capture ... Test Something”
我正在尝试使用http://kodi.wiki/view/Scrapers来匹配标题
答案 0 :(得分:0)
如果你有一个匹配的输入字符串,你可以通过首先转义字符串,然后在你想要选择的字符后放置可选的量词来构造一个正则表达式:
var search = "Capture... Test: Something";
var input = "Capture... Test Something";
search = Regex.Escape(search);
search = Regex.Replace(search, @"[*/?:""<>|]", "$0?");
var match = Regex.Match(input, search);
检查demo here。
另一种方法是从两个字符串中删除所有可选字符,然后检查这些:
var search = "Capture... Test: Something";
var input = "Capture... Test Something";
search = Regex.Replace(search, @"[*/?:""<>|]", string.Empty);
input = Regex.Replace(input, @"[*/?:""<>|]", string.Empty);
var index = input.IndexOf(search);