我的问题是要找人出席,但他已经用错误的模式两次给出了他的约会,如 jul22 , 22jul 。我想证明两者都是一样的。
attendF 文件数据如下所示 -
PersonsName,month
sriram,jul22
sriram,22jul
我的想法:首先,我在 attendF 文件中提供他所提供的月份模式
#grep -i "personName" attendF | cut -t"," -k2,2 > mnthFile
mnthFile 的数据如下:
jul22
jul23
22jul
jul24
23 jul
我希望输出为:
jul22
jul23
jul24
(或)
22jul
23月18日
jul24
在那里,我可以得到正确的出席率。
答案 0 :(得分:0)
如果您正在询问如何将不同日期标准化为单一格式以便进行比较,则以下NSArray *results = [json objectForKey:@"status"];
//now go through the array getting each image
for(NSDictionary *item in results) {
NSString *imageURL = item[@"slider_image_path"];
//short cut method to grab the image (credit below)
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];
//we're on a background thread, so switch to main thread to update the UI
dispatch_async(dispatch_get_main_queue(), ^{
//set each image goes here
});
}
函数(以及小型测试工具)将为您执行此操作。
首先是小写字符串然后删除所有既不是字母也不是数字的字符。
然后,如果它既不是normalise
也不是alpha-number
,它只返回一个合适的错误值number-alpha
。
但是,假设是其中一种格式的,它会将其分为日期和月份,然后以一致的格式返回:
?
该脚本的输出是:
#!/usr/bin/env bash
normalise() {
# Lowercase it and remove non-alphanumerics.
str="$(echo "$1" | tr '[A-Z]' '[a-z]' | sed 's/[^a-z0-9]//g')"
# Check one of the allowed formats.
if [[ ! "${str}" =~ ^[0-9]+[a-z]+$ ]] ; then
if [[ ! "${str}" =~ ^[a-z]+[0-9]+$ ]] ; then
echo '?'
return
fi
fi
# Extract the day andd month, return normalised value.
day="$(echo "$str" | sed 's/[a-z]//g')"
mon="$(echo "$str" | sed 's/[0-9]//g')"
echo "${day}-${mon}"
}
echo $(normalise "Jul 22")
echo $(normalise "jUl-22")
echo $(normalise "juL22")
echo $(normalise "Jul.22")
echo $(normalise "22 jUl")
echo $(normalise "22-juL")
echo $(normalise "22Jul")
echo $(normalise "22.jUl")
echo $(normalise "22.jUl.1977")