使用正则表达式的C++程序打印每个单词的首字母

2023年 8月 27日 34.5k 0

使用正则表达式的C++程序打印每个单词的首字母

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( )

登录后复制

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 is
taken. 现在让我们看一下正在用于读取所有选定匹配项的迭代器对象 -

语法(正则表达式迭代器)

regex_token_iterator iterator_name( , , , );

登录后复制
在这个迭代器中,前两个参数是起始和结束指针的
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
#include
using namespace std;
string solve( string s){
string ret = "";
regex e("b[a-zA-Z]");
regex_token_iterator i(s.begin(), s.end(), e, 0);
regex_token_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

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论