正则表达式是正确的解决方法吗?
我有一个字符串列表(大猿,大鸟,小鸟,小猿,中猿,银猿,蓝猿,黑猿)如果我输入'大'正则表达式应该返回(大猿,大Bird),如果我输入'al',返回的列表是'Small Bird,Small Ape)。这是可能的,使用正则表达式进行上下文搜索吗?
答案 0 :(得分:0)
正则表达式可以为你做到,是的。根据您使用的.Contains("Big")
或类似的编程语言,这可能是一种更直接的方法。
答案 1 :(得分:0)
是的,正则表达式可以判断字符串是否与模式匹配,例如:
'大猿'匹配/大/? =>是 '小猿'匹配/大/? =>没有 '大猿'匹配/ al /? =>没有 '小猿'匹配/ al /? =>是
几乎所有语言都可以让你轻松使用正则表达式,所以你可以这样做。
但正则表达式在处理更复杂的模式时非常有用。在您的情况下,您的编程语言可能会为您的问题提供更简单的功能。例如,在php中:
'大猿'匹配/大/?翻译为(strpos ('Big Ape', 'Big') !== false)
答案 2 :(得分:0)
这很简单,但RE比简单的子串匹配更强大。
这是python中的一个例子
import re ### regular expression library
possibilities = ['Big Ape', 'Big Bird', 'Small Bird', 'Small Ape',
'Medium Ape', 'Silver Ape', 'Blue Ape', 'Black Ape']
def search(list, pattern):
output = []
for item in list:
match = re.search(pattern, item)
if match:
output.append(item)
return output
输出:
>>> search(possibilities, 'Big')
['Big Ape', 'Big Bird']
>>> search(possibilities, 'al')
['Small Bird', 'Small Ape']
答案 3 :(得分:0)
是的,正则表达式是一种很好的方法。
这是C#中的一个示例控制台应用程序,它将您想要匹配的内容作为参数;例如问题中的'大'或'al'。在内部,该参数用作正则表达式以匹配您的样本输入。
static void Main(string[] args)
{
// Inputs to try to match.
string[] inputs = { "Big Ape", "Big Bird", "Small Bird", "Small Ape",
"Medium Ape", "Silver Ape", "Blue Ape", "Black Ape" };
var stringToMatch = args[0];
Regex regex = new Regex(stringToMatch, RegexOptions.IgnoreCase);
// Container for all inputs that match the given regular expression.
var matchList = new List<string>();
foreach (var input in inputs)
{
Match parse = regex.Match(input);
if (parse.Success)
{
matchList.Add(input);
Console.WriteLine(input);
}
}
}
SampleApplication.exe al 小鸟
小猿SampleApplication.exe大
大猿
大鸟