使用正则表达式寻找字符串中出现了几个[***]样式的字符串

使用正则表达式寻找字符串中出现了几个[***]样式的字符串

源码如下:


- (NSUInteger)analyseRX:(NSString *)string withPatternString:(NSString *)patternString
{
// \\[[^\\]]+\\] 用以匹配字符串中所出现的 [*] 的个数
// <[^>]+> 用以匹配字符串中所出现的 <*> 的个数

if (string == nil)
{
return 0;
}

// 正则表达式
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:patternString
options:NSRegularExpressionCaseInsensitive
error:nil];
// 执行相关匹配操作
NSRange range = NSMakeRange(0, [string length]);
NSUInteger numberOfMatches = [regex numberOfMatchesInString:string
options:0
range:range];

// 返回匹配的个数
return numberOfMatches;
}

比如,如果你想查询字符串中出现了几个[**]结构的字符串,就比如下面的字符串:

很简单吧,你也可以替换相关字符串哦.

心得:

这种字符串里面查找出现了某种样式模板的字符串就用正则表达式吧,其实你也别无它法了:)

附录:

http://stackoverflow.com/questions/8672525/regular-expression-in-objective-c

使用正则表达式寻找字符串中出现了几个[***]样式的字符串,布布扣,bubuko.com

时间: 2024-12-29 10:05:52

使用正则表达式寻找字符串中出现了几个[***]样式的字符串的相关文章

找出一个字符串中最长重复次数的子字符串,并计算其重复次数

原题 找出一个字符串中最长重复次数的子字符串,并计算其重复次数.例如:字符串"abc fghi bc kl abcd lkm abcdefg",并返回"abcd"和2. 我的思路 为了方便表述,我们使用变量src作为原字符串,sub_str作为子字符串. 由于题目要求寻找至少重复2次的最长的子字符串,重点在于最长的子字符串,而不在于重复的最多次数.因此我们可以从长度最长的字符串入手,计算其重复次数.只要重复达到2次,即可返回该字符串. 显然长度最长的子字符串就是原串

css如何设置字符串中第一个字符的样式

css如何设置字符串中第一个字符的样式:本章节介绍一下如何使用css设置字符串中第一个字符的样式.以前我们实现此效果的方式,可能会在第一个字符上嵌套上一个span标签.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/"

C语言:将字符串中的前导*号全部移到字符串的尾部。

//规定输入的字符串中只包含字母和*号,fun函数:将字符串中的前导*号全部移到字符串的尾部. 1 #include <stdio.h> 2 void fun( char *a ) 3 { 4 char b[81]; 5 char *c,*d; 6 c = a; 7 int i = 0; 8 while (*c == '*') 9 { 10 c++; 11 } 12 d = c; 13 while (*c != '\0') 14 { 15 b[i] = *c; 16 i++; 17 c++;

JavaScript基础 substr(startIndex, length) 在原始字符串中,截取并返回一个子字符串

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

字符串中连续出现最多的子串 &amp;amp; 字符串中最长反复子串

字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀数组就是定义一个数组指针,分别指向字符串中的相应位置,例如以下: a b c a b c a b c d e .substr[0] b c a b c a b c d e ....substr[1] c a b c a b c d e .......substr[2] a b c a b c d e ....

自定义函数使字符串中的某个字符更改样式

设定现在有一个字符串 str = "hello, kitty is not cat": 假设要把其中的 is 变成红色样式: 先自定义一个函数 red(); red(str,redstr)函数传递两个参数,一个是整个字符串,另一个是要变样式的字符串. var str = "hello, kitty is not cat"; var red = (a, redstr = "参数默认") => { let zzr = new RegExp(&q

判断java或js中的某个字符串中是否包含有某个字符或是字符串

js中: varCts = "aaddssyes"; if(Cts.indexOf("yes") > 0 ){     alert('Cts中包含Text字符串'); } 找的是最开始的位置,如果没找到,则返回的是-1. functionIndexDemo(str){    varstr1 = "BABEBIBOBUBABEBIBOBU"    vars = str1.indexOf(str);    return(s); } str是外边

编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。

char str[255] = {0}; printf("请输入一个字符串:\n"); scanf("%[^\n]", str);//意思是非'\n'.也就是说只要没有遇到换行就继续输入,当遇到换行符的时候此语句结束.而默认情况是遇到换行语句执行结束,但是str的值只是第一个空格前的值.但这样写,按回车时scanf执行完,中间所有内容包括空格都会输入到str中去. // gets(str); int maxLength = 0, maxIndex = 0; int

输入任意一个字符串,如:“abDEe23dJfd343dPOddfe4CdD5ccv!23rr ”。取出该字符串中所有的字母组成新的字符串。顺序不能改变!并把大 写字母变成小写,小写字母变成大写!

#include <stdio.h>#include <string.h> void main(){ char inputStr[100]; char newStr[100] = {0}; int i = 0,j = 0; printf("请输入一个字符串:"); scanf("%s",inputStr); for(i = 0; i < strlen(inputStr); i++) { if(inputStr[i] >= 'A'