a useful tool for string operations is regex. this may be found in virtually all high-level当前的编程语言,包括c++。正则表达式(regex)被用作通用搜索模式。例如,通过构建一个简单的字符串被称为正则表达式,我们可以使用至少实现密码验证逻辑一个大写字母,一个小写字母,一个数字,一个特殊字符,并且总长度至少为8个字符。
in this tutorial, we'll look at how to use c++ to display only the first letters of words included在指定的字符串内。在这里,我们将看一个使用空格来分隔单词的句子无论字符是大写还是小写,计算机都会读取将字符串使用正则表达式分割,并返回每个单词的第一个字符。
to use regular expressions, we need to import the regex library using the ‘regex’ header. to使用正则表达式,我们需要以下语法 -
语法(创建正则表达式对象)regex obj_name( <regular expression> )
after defining regex, we can use them in multiple ways. we will see our intended approach在下面。现在要从单词中读取第一个字符,正则表达式的语法将会是这样的下面的内容为:
语法(读取单词的第一个字符)\b[a-za-z]
在这里,‘\b’表示单词的开头。[a-za-z]表示大写或小写字母lowercase letters which are in the range of ‘a’ to ‘z’ or ‘a’ to ‘z’. and only one of them istaken. 现在让我们看一下正在用于读取所有选定匹配项的迭代器对象 -
语法(正则表达式迭代器)regex_token_iterator<string::iterator> iterator_name( <begin pointer of string>, <ending pointer of string>, <regular expression>, <submatch>);
在这个迭代器中,前两个参数是起始和结束指针的string object. the third parameter is the given regular expression object which we have在之前创建。第四个参数是子匹配。当子匹配为0时,它将返回那些来自匹配的元素(在匹配时)的内容,当submatch is -1, it represents where the matching is not done (reverse of the submatch 0).submatch为-1,表示匹配未完成的位置(与submatch 0相反)
算法将字符串 s 作为输入define regular expression with '\b[a-za-z]'对s使用表达式进行匹配定义一个迭代器对象来仅读取匹配项for each item in iterator object, do显示项目结束循环example#include <iostream>#include <regex>using namespace std;string solve( string s){ string ret = ; regex e(\b[a-za-z]); regex_token_iterator<string::iterator> i(s.begin(), s.end(), e, 0); regex_token_iterator<string::iterator> end; while (i != end) { ret += (*i++); ret += , ; } return ret;}int main(){ string s = a string to read only the first letter of words; cout << given string: << s << endl; cout << the first letter of each word: << solve( s ) << endl; s = central pollution control board; cout << given string: << s << endl; cout << the first letter of each word: << solve( s ) << endl;}
输出given string: a string to read only the first letter of wordsthe first letter of each word: a, s, t, r, o, t, f, l, o, w, given string: central pollution control boardthe first letter of each word: c, p, c, b,
conclusion表达式在字符串中用于匹配常见模式表达式库(正则表达式)在所有高级语言中都可用,包括java,pythonjavascript,dart和c++。它有许多应用。一个正则表达式,reads the first character of each word has been defined in this article. we need an iterator,它会逐个读取每个匹配的字符,以便循环遍历它们。以上就是使用正则表达式的c++程序打印每个单词的首字母的详细内容。