C正则表达式获取字符串的位置并替换另一个字符串
Q1.我想在用户输入字符串中匹配&JOY,例如,bla-bla&JOY-bla&JOY-bla 如何编写正则表达式,是否有任何C正则表达式函数可以返回匹配发生的所有位置?C正则表达式获取字符串的位置并替换另一个字符串,c,regex,C,Regex,Q1.我想在用户输入字符串中匹配&JOY,例如,bla-bla&JOY-bla&JOY-bla 如何编写正则表达式,是否有任何C正则表达式函数可以返回匹配发生的所有位置? 如果我想用另一个字符串替换&JOY,是否有一个方便的C函数来执行此操作?看起来您的正则表达式不是很有趣。它只会是: &JOY 换句话说,看起来您只是在尝试匹配一个文字子字符串。如果这就是你要做的,我就不会像用大锤敲图钉一样麻烦正则表达式了。看起来你的正则表达式不会很有趣。它只会是: &JOY 换句话说,看起
如果我想用另一个字符串替换&JOY,是否有一个方便的C函数来执行此操作?看起来您的正则表达式不是很有趣。它只会是:
&JOY
换句话说,看起来您只是在尝试匹配一个文字子字符串。如果这就是你要做的,我就不会像用大锤敲图钉一样麻烦正则表达式了。看起来你的正则表达式不会很有趣。它只会是:
&JOY
换句话说,看起来您只是在尝试匹配一个文字子字符串。如果这就是你所要做的,我不会像用大锤敲大头钉一样麻烦你使用正则表达式。C标准库不提供正则表达式函数。但是,由于您的示例查找固定字符串,因此不需要正则表达式。子字符串搜索就足够了。可通过以下功能实现:
#include <string.h>
..........
char* text = "bla bla &JOY bla bla &JOY blabla";
char* pattern = "&JOY";
char* substr_ptr;
int pos;
while ( substr_ptr = strstr(pattern, text) )
{
pos = substr_ptr - text;
printf("found at %d\n", pos);
}
至于你的第二个问题——不,没有这样的功能。您必须手动执行此操作:
如果替换字符串的长度与要替换的子字符串的长度相同,只需就地覆盖它;
否则,您将不得不为结果字符串分配内存,并在子字符串出现之前将三部分复制到原始字符串,替换字符串和原始字符串的其余部分。
C标准库不提供正则表达式函数。但是,由于您的示例查找固定字符串,因此不需要正则表达式。子字符串搜索就足够了。可通过以下功能实现:
#include <string.h>
..........
char* text = "bla bla &JOY bla bla &JOY blabla";
char* pattern = "&JOY";
char* substr_ptr;
int pos;
while ( substr_ptr = strstr(pattern, text) )
{
pos = substr_ptr - text;
printf("found at %d\n", pos);
}
至于你的第二个问题——不,没有这样的功能。您必须手动执行此操作:
如果替换字符串的长度与要替换的子字符串的长度相同,只需就地覆盖它;
否则,您将不得不为结果字符串分配内存,并在子字符串出现之前将三部分复制到原始字符串,替换字符串和原始字符串的其余部分。
R1。可以是&JOY或&JOY以获取子字符串。使用regex.h在C中执行此操作
R2。如果还有其他更高级的正则表达式,请使用并实现您自己的函数。它非常简单。R1。可以是&JOY或&JOY以获取子字符串。使用regex.h在C中执行此操作 R2。如果还有其他更高级的正则表达式,请使用并实现您自己的函数。这很简单