用正则表达式 生成随机字符串

时间:2023-01-03 12:39:36
写了一个小工具,根据指定的正则表达式,产生若干随机字符串。

开放源码,希望大家多提意见和建议。

Linux下的安装包及源码下载地址:
http://regxstring.googlecode.com/files/regxstring_0.1.tar.gz

示例用法:
~# echo "\w{3,16}" | regxstr 10

作用为产生10个符合正则表达式“\w{3,16}”的字符串

同时提供头文件,静态库和共享库,使用方法为:
#include <iostream>
#include <regxstring.h>

using namespace std;

int main()
{
    const char * expr = "\\w{3,16}";
    CRegxString regxstr;
    regxstr.ParseRegx(expr);
    for(int i = 0;i < 10;++i)
        cout<<regxstr.RandString()<<endl;
    return 0;
}


链接时加入 -lregxstr 选项即可。

47 个解决方案

#1


up~~

#2


@echo off
chdir %1
start /b pythonw.exe C:\Python26\Lib\site-packages\wx-2.8-msw-unicode\wx\py\PyCrust.py

#3


没装python,请教何意?

#4


有意思

#5


d

#6


正则表达式我知道,随机表达式我就不知道了

#7


最开始想做这个,是在写一个网络测试客户端的时候,想完成一个功能:
随机生成若干客户数据包,压力测试服务器的性能。由于ID不能完全一样,最好是满足一定规律的随机字符串,所以想起了用正则表达式来做。

#8


自己顶下!

#9


····· ····
正则原来还能这样用

#10


马克

#11


学到很多东西,谢谢。

#12


很好很强大!

试用了一下,用下面的表示IP地址的正则表达式:

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$


产生了下面的结果:

251.232.237.12
253.222.254.209
229.211.213.252
230.253.202.220
074.6.255.253
82.255.223.252
210.214.238.244
066.229.245.05
46.252.250.242
250.0.209.251


已加你好友!

#13


只要大家觉得有用,就行了

#14


有想法,收藏,谢谢LZ~

#15


真的很强大 在VS中运行正常 可我想在Java中引用一下 用了JNI 却有如下的提示:
/dll
/implib:regexGenerate.lib
/out:regexGenerate.dll
regexGenerate.obj
   正在创建库 regexGenerate.lib 和对象 regexGenerate.exp
regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CRegxS
tring::~CRegxString(void)" (??1CRegxString@@QAE@XZ),该符号在函数 _Java_wsdlpars
er_parser_RegexStringGenerate_regexGenerate@12 中被引用
regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: char const * __th
iscall CRegxString::RandString(void)" (?RandString@CRegxString@@QAEPBDXZ),该符
号在函数 _Java_wsdlparser_parser_RegexStringGenerate_regexGenerate@12 中被引用
regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall C
RegxString::ParseRegx(char const *,struct Config const *)" (?ParseRegx@CRegxStri
ng@@QAEXPBDPBUConfig@@@Z),该符号在函数 _Java_wsdlparser_parser_RegexStringGener
ate_regexGenerate@12 中被引用
regexGenerate.dll : fatal error LNK1120: 3 个无法解析的外部命令

请问您能看得出来是哪的问题么?

#16


学习
  学习

#17


引用 15 楼 spike2004 的回复:
真的很强大 在VS中运行正常 可我想在Java中引用一下 用了JNI 却有如下的提示:
 /dll
 /implib:regexGenerate.lib
 /out:regexGenerate.dll
 regexGenerate.obj
    正在创建库 regexGenerate.lib 和对象 regexGenerate.exp
 regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CRegxS
 tring::~CRegxString(void)" (??1CRegxString@@QAE@XZ),该符号在函数 _Java_wsdlpars
 er_parser_RegexStringGenerate_regexGenerate@12 中被引用
 regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: char const * __th
 iscall CRegxString::RandString(void)" (?RandString@CRegxString@@QAEPBDXZ),该符
 号在函数 _Java_wsdlparser_parser_RegexStringGenerate_regexGenerate@12 中被引用
 regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall C
 RegxString::ParseRegx(char const *,struct Config const *)" (?ParseRegx@CRegxStri
 ng@@QAEXPBDPBUConfig@@@Z),该符号在函数 _Java_wsdlparser_parser_RegexStringGener
 ate_regexGenerate@12 中被引用
 regexGenerate.dll : fatal error LNK1120: 3 个无法解析的外部命令

 请问您能看得出来是哪的问题么?

Java调用C++库的时候,是否有函数名修饰规范?感觉是这些函数的mangle机制不一致,导致函数找不到。

#18


up

#19


很好的创意!

#20


希望大家能多多试用,如果能提出问题或改进建议,更是感激不尽!

#21


这个不错,收藏下。
LZ很有创意啊

#22


顶一个

#23


请问,怎样在windows下的VS环境里编译的,谢谢

#24


引用 23 楼 gsj4ever 的回复:
请问,怎样在windows下的VS环境里编译的,谢谢

我是在VS2008下编写的,直接就可以编译运行。
如果你用的是其他版本的VS,直接新建工程,将源代码加入工程应该就可以了。
如果出现编译错误,请贴出来,谢谢!

#25


    真的是一个很好很好的想法,我在做一个软件测试的项目,遇到string的话要随机生成字符串,正好也想写一个相同的东西,楼主真是太棒了!
只是在visual studio2010编译regxstring.cpp的时候会报错,如下:
=================================================================================
1>ClCompile:
1>  regxstring_impl.cpp
1>d:\program files\microsoft visual studio 10.0\vc\include\utility(163): error C2440: “初始化”: 无法从“int”转换为“__DZ_Regx_String::__NodeBase *”
1>          从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
1>          d:\program files\microsoft visual studio 10.0\vc\include\utility(247): 参见对正在编译的函数 模板 实例化“std::_Pair_base<_Ty1,_Ty2>::_Pair_base<_Ty,char>(_Other1 &&,_Other2 &&)”的引用
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int,
1>              _Ty=int,
1>              _Other1=int,
1>              _Other2=char
1>          ]
1>          e:\projects\dos2unix\dos2unix\regxstring_impl.cpp(755): 参见对正在编译的函数 模板 实例化“std::pair<_Ty1,_Ty2>::pair<int,char>(_Other1 &&,_Other2 &&)”的引用
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int,
1>              _Other1=int,
1>              _Other2=char
1>          ]
1>d:\program files\microsoft visual studio 10.0\vc\include\utility(163): error C2439: “std::_Pair_base<_Ty1,_Ty2>::first”: 未能初始化成员
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int
1>          ]
1>          d:\program files\microsoft visual studio 10.0\vc\include\utility(166) : 参见“std::_Pair_base<_Ty1,_Ty2>::first”的声明
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int
1>          ]
1>
1>生成失败。
1>
1>已用时间 00:00:01.09
===============================================================================
不知道是怎么回事,请楼主不吝赐教~

#26


我也正要写这东西。。这个是随机生成的,会有重复吧?

#27


该回复于2011-03-14 08:55:08被版主删除

#28


编译成dll后
java调用dll时,100条有时全重复,有时只有二个不重复
有人遇到过没,要怎么解决

#29



//cpp
#include "RandomString.h"
#include "regxstring.h"
#include <math.h>
#include <stdio.h>
#include <string.h>


jstring stoJstring(JNIEnv* env, const char* pat) 

       jclass strClass = env->FindClass("Ljava/lang/String;"); 
       jmethodID ctorID = env->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V"); 
       jbyteArray bytes = env->NewByteArray(strlen(pat)); 
       env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat); 
       jstring encoding = env->NewStringUTF("utf-8"); 
       return (jstring)env->NewObject(strClass, ctorID, bytes, encoding); 
}

JNIEXPORT jstring JNICALL Java_RandomString_getString
(JNIEnv *env, jclass jcl, jstring s){
    const char* szStr=(env)->GetStringUTFChars(s,0);//两个参数
    //printf("string=[%s]",szStr);
    CRegxString regxstr;
    regxstr.ParseRegx(szStr);
    return stoJstring(env,regxstr.RandString());
}

public class RandomString {
public static native String getString(String rex);

static {
System.loadLibrary("lib/RandomString");
}

public static void main(String[] args) {
for (int i = 0; i < 100; i++)
System.out.println(getString("[01]?[0-9][:][0-5]?[0-9]|[2]?[0-3][:][0-5]?[0-9]"));
try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/*
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
...全重复了
*/

感觉是jni的问题,不知道要怎么解决

#30


引用 25 楼 lubobill1990 的回复:
    真的是一个很好很好的想法,我在做一个软件测试的项目,遇到string的话要随机生成字符串,正好也想写一个相同的东西,楼主真是太棒了!
只是在visual studio2010编译regxstring.cpp的时候会报错,如下:
===============================================================================……

我手上没有vs2010,不过从错误信息看,似乎是“(__NodeBase *)0”的问题,可以改为“reinterpret_cast<__NodeBase *>(0)”试试。

#31


支持!

#32


大牛,正想找这东西。十分感谢您的辛勤劳动!!

#33


Compiling...
main.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.h(10) : error C2258: illegal pure syntax, must be '= 0'
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.h(10) : error C2252: 'REPEAT_INFINITE' : pure specifier can only be specified for functions
C:\Documents and Settings\Administrator\My Documents\VC6.0\main\main.cpp(20) : error C2039: 'isspace' : is not a member of 'std'
C:\Documents and Settings\Administrator\My Documents\VC6.0\main\main.cpp(22) : error C2039: 'isspace' : is not a member of 'std'
C:\Documents and Settings\Administrator\My Documents\VC6.0\main\main.cpp(53) : error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
regxstring.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.cpp(44) : fatal error C1010: unexpected end of file while looking for precompiled header directive
regxstring_impl.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring_impl.cpp(26) : warning C4005: '_OSS_OUT' : macro redefinition
        c:\documents and settings\administrator\my documents\vc6.0\main\regxstring_impl.cpp(23) : see previous definition of '_OSS_OUT'
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring_impl.cpp(937) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Generating Code...
执行 cl.exe 时出错.

main.exe - 1 error(s), 0 warning(s)



怎么调试……用的vc6.0

#34


引用 33 楼 tearmap 的回复:
Compiling...
main.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.h(10) : error C2258: illegal pure syntax, must be '= 0'
c:\documents and settings\administrator\my ……

1. error C2252: 'REPEAT_INFINITE' : pure specifier can only be specified for functions
看来vc6不支持非0的static const常量初始化,简单的改法是:
#define REPEAT_INFINITE 3

2. error C2039: 'isspace' : is not a member of 'std'
应该是vc6没把isspace函数放在namespace std里,只能找找在哪里,修改一下了。

3. error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
呃~,如果是我,我就换个编译器。

后面的错误我也看不出来什么原因,不过引用别人的一句话:
珍惜生命,远离vc6.0

#35


下载看了一下,不错。
是否支持汉字?

#36


能不能给一下代码的注释啊?看不懂啊……感谢你的热心回复!

#37


引用 35 楼 zhao4zhong1 的回复:
下载看了一下,不错。
是否支持汉字?

不支持宽字符。

#38


我想学习一下这个代码,请问从哪下手?

#39


引用 38 楼 tearmap 的回复:
我想学习一下这个代码,请问从哪下手?

可以先看doc文档,从算法开始理解。

#40


我看了doc文档了,但是文档没有写程序的运行原理。能私聊么?你的QQ是多少?我的
QQ:35145066

#41


如果在java平台上实现 各位大神有没有实现方法呢

#42


你好!看了你的帖子,受益匪浅!希望后面有什么问题能与您交流!

#43


你好,能将dll及接口发我下么?407361892@qq.com
引用 15 楼 spike2004 的回复:
真的很强大 在VS中运行正常 可我想在Java中引用一下 用了JNI 却有如下的提示:
/dll
/implib:regexGenerate.lib
/out:regexGenerate.dll
regexGenerate.obj
   正在创建库 regexGenerate.lib 和对象 regexGenerate.exp
regexGenerate.obj : error LN……

#44


您好,我想请问您的dll是如何生成的?需要输入正则表达式字符串,且返回满足表达式的字符串数组,另外就是您说的数据重复问题解决了吗?如果解决的话,麻烦发dll和接口说明到我邮箱好么?407361892@qq.com
引用 29 楼 bawgiitx 的回复:
C/C++ code

//cpp
#include "RandomString.h"
#include "regxstring.h"
#include <math.h>
#include <stdio.h>
#include <string.h>


jstring stoJstring(JNIEnv* env, const char* pat) 

       jclass strC……

#45


怒赞,准备使用下这个库

#46


((http[s]{0,1}|ftp)://[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4})(:\d+)?(/[a-zA-Z0-9\.\-~!@#$%^&*+?:_/=<>]*)?)
会生成
ftp://U.Ch/" 

但不应该有双引号存在,检查发现可能是对字符^识别有问题

#47


C:\Documents and Settings\lx>echo "^kernel: CF: .*[Ff]ailed" | regxstr 2
"^kernel: CF: Failed"
"^kernel: CF: !oafailed"

windows里面怎么把"^"这个符号也输出来了?

#1


up~~

#2


@echo off
chdir %1
start /b pythonw.exe C:\Python26\Lib\site-packages\wx-2.8-msw-unicode\wx\py\PyCrust.py

#3


没装python,请教何意?

#4


有意思

#5


d

#6


正则表达式我知道,随机表达式我就不知道了

#7


最开始想做这个,是在写一个网络测试客户端的时候,想完成一个功能:
随机生成若干客户数据包,压力测试服务器的性能。由于ID不能完全一样,最好是满足一定规律的随机字符串,所以想起了用正则表达式来做。

#8


自己顶下!

#9


····· ····
正则原来还能这样用

#10


马克

#11


学到很多东西,谢谢。

#12


很好很强大!

试用了一下,用下面的表示IP地址的正则表达式:

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$


产生了下面的结果:

251.232.237.12
253.222.254.209
229.211.213.252
230.253.202.220
074.6.255.253
82.255.223.252
210.214.238.244
066.229.245.05
46.252.250.242
250.0.209.251


已加你好友!

#13


只要大家觉得有用,就行了

#14


有想法,收藏,谢谢LZ~

#15


真的很强大 在VS中运行正常 可我想在Java中引用一下 用了JNI 却有如下的提示:
/dll
/implib:regexGenerate.lib
/out:regexGenerate.dll
regexGenerate.obj
   正在创建库 regexGenerate.lib 和对象 regexGenerate.exp
regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CRegxS
tring::~CRegxString(void)" (??1CRegxString@@QAE@XZ),该符号在函数 _Java_wsdlpars
er_parser_RegexStringGenerate_regexGenerate@12 中被引用
regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: char const * __th
iscall CRegxString::RandString(void)" (?RandString@CRegxString@@QAEPBDXZ),该符
号在函数 _Java_wsdlparser_parser_RegexStringGenerate_regexGenerate@12 中被引用
regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall C
RegxString::ParseRegx(char const *,struct Config const *)" (?ParseRegx@CRegxStri
ng@@QAEXPBDPBUConfig@@@Z),该符号在函数 _Java_wsdlparser_parser_RegexStringGener
ate_regexGenerate@12 中被引用
regexGenerate.dll : fatal error LNK1120: 3 个无法解析的外部命令

请问您能看得出来是哪的问题么?

#16


学习
  学习

#17


引用 15 楼 spike2004 的回复:
真的很强大 在VS中运行正常 可我想在Java中引用一下 用了JNI 却有如下的提示:
 /dll
 /implib:regexGenerate.lib
 /out:regexGenerate.dll
 regexGenerate.obj
    正在创建库 regexGenerate.lib 和对象 regexGenerate.exp
 regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CRegxS
 tring::~CRegxString(void)" (??1CRegxString@@QAE@XZ),该符号在函数 _Java_wsdlpars
 er_parser_RegexStringGenerate_regexGenerate@12 中被引用
 regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: char const * __th
 iscall CRegxString::RandString(void)" (?RandString@CRegxString@@QAEPBDXZ),该符
 号在函数 _Java_wsdlparser_parser_RegexStringGenerate_regexGenerate@12 中被引用
 regexGenerate.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall C
 RegxString::ParseRegx(char const *,struct Config const *)" (?ParseRegx@CRegxStri
 ng@@QAEXPBDPBUConfig@@@Z),该符号在函数 _Java_wsdlparser_parser_RegexStringGener
 ate_regexGenerate@12 中被引用
 regexGenerate.dll : fatal error LNK1120: 3 个无法解析的外部命令

 请问您能看得出来是哪的问题么?

Java调用C++库的时候,是否有函数名修饰规范?感觉是这些函数的mangle机制不一致,导致函数找不到。

#18


up

#19


很好的创意!

#20


希望大家能多多试用,如果能提出问题或改进建议,更是感激不尽!

#21


这个不错,收藏下。
LZ很有创意啊

#22


顶一个

#23


请问,怎样在windows下的VS环境里编译的,谢谢

#24


引用 23 楼 gsj4ever 的回复:
请问,怎样在windows下的VS环境里编译的,谢谢

我是在VS2008下编写的,直接就可以编译运行。
如果你用的是其他版本的VS,直接新建工程,将源代码加入工程应该就可以了。
如果出现编译错误,请贴出来,谢谢!

#25


    真的是一个很好很好的想法,我在做一个软件测试的项目,遇到string的话要随机生成字符串,正好也想写一个相同的东西,楼主真是太棒了!
只是在visual studio2010编译regxstring.cpp的时候会报错,如下:
=================================================================================
1>ClCompile:
1>  regxstring_impl.cpp
1>d:\program files\microsoft visual studio 10.0\vc\include\utility(163): error C2440: “初始化”: 无法从“int”转换为“__DZ_Regx_String::__NodeBase *”
1>          从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
1>          d:\program files\microsoft visual studio 10.0\vc\include\utility(247): 参见对正在编译的函数 模板 实例化“std::_Pair_base<_Ty1,_Ty2>::_Pair_base<_Ty,char>(_Other1 &&,_Other2 &&)”的引用
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int,
1>              _Ty=int,
1>              _Other1=int,
1>              _Other2=char
1>          ]
1>          e:\projects\dos2unix\dos2unix\regxstring_impl.cpp(755): 参见对正在编译的函数 模板 实例化“std::pair<_Ty1,_Ty2>::pair<int,char>(_Other1 &&,_Other2 &&)”的引用
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int,
1>              _Other1=int,
1>              _Other2=char
1>          ]
1>d:\program files\microsoft visual studio 10.0\vc\include\utility(163): error C2439: “std::_Pair_base<_Ty1,_Ty2>::first”: 未能初始化成员
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int
1>          ]
1>          d:\program files\microsoft visual studio 10.0\vc\include\utility(166) : 参见“std::_Pair_base<_Ty1,_Ty2>::first”的声明
1>          with
1>          [
1>              _Ty1=__DZ_Regx_String::__NodeBase *,
1>              _Ty2=int
1>          ]
1>
1>生成失败。
1>
1>已用时间 00:00:01.09
===============================================================================
不知道是怎么回事,请楼主不吝赐教~

#26


我也正要写这东西。。这个是随机生成的,会有重复吧?

#27


该回复于2011-03-14 08:55:08被版主删除

#28


编译成dll后
java调用dll时,100条有时全重复,有时只有二个不重复
有人遇到过没,要怎么解决

#29



//cpp
#include "RandomString.h"
#include "regxstring.h"
#include <math.h>
#include <stdio.h>
#include <string.h>


jstring stoJstring(JNIEnv* env, const char* pat) 

       jclass strClass = env->FindClass("Ljava/lang/String;"); 
       jmethodID ctorID = env->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V"); 
       jbyteArray bytes = env->NewByteArray(strlen(pat)); 
       env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat); 
       jstring encoding = env->NewStringUTF("utf-8"); 
       return (jstring)env->NewObject(strClass, ctorID, bytes, encoding); 
}

JNIEXPORT jstring JNICALL Java_RandomString_getString
(JNIEnv *env, jclass jcl, jstring s){
    const char* szStr=(env)->GetStringUTFChars(s,0);//两个参数
    //printf("string=[%s]",szStr);
    CRegxString regxstr;
    regxstr.ParseRegx(szStr);
    return stoJstring(env,regxstr.RandString());
}

public class RandomString {
public static native String getString(String rex);

static {
System.loadLibrary("lib/RandomString");
}

public static void main(String[] args) {
for (int i = 0; i < 100; i++)
System.out.println(getString("[01]?[0-9][:][0-5]?[0-9]|[2]?[0-3][:][0-5]?[0-9]"));
try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/*
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
3:07
...全重复了
*/

感觉是jni的问题,不知道要怎么解决

#30


引用 25 楼 lubobill1990 的回复:
    真的是一个很好很好的想法,我在做一个软件测试的项目,遇到string的话要随机生成字符串,正好也想写一个相同的东西,楼主真是太棒了!
只是在visual studio2010编译regxstring.cpp的时候会报错,如下:
===============================================================================……

我手上没有vs2010,不过从错误信息看,似乎是“(__NodeBase *)0”的问题,可以改为“reinterpret_cast<__NodeBase *>(0)”试试。

#31


支持!

#32


大牛,正想找这东西。十分感谢您的辛勤劳动!!

#33


Compiling...
main.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.h(10) : error C2258: illegal pure syntax, must be '= 0'
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.h(10) : error C2252: 'REPEAT_INFINITE' : pure specifier can only be specified for functions
C:\Documents and Settings\Administrator\My Documents\VC6.0\main\main.cpp(20) : error C2039: 'isspace' : is not a member of 'std'
C:\Documents and Settings\Administrator\My Documents\VC6.0\main\main.cpp(22) : error C2039: 'isspace' : is not a member of 'std'
C:\Documents and Settings\Administrator\My Documents\VC6.0\main\main.cpp(53) : error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
regxstring.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.cpp(44) : fatal error C1010: unexpected end of file while looking for precompiled header directive
regxstring_impl.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring_impl.cpp(26) : warning C4005: '_OSS_OUT' : macro redefinition
        c:\documents and settings\administrator\my documents\vc6.0\main\regxstring_impl.cpp(23) : see previous definition of '_OSS_OUT'
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring_impl.cpp(937) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Generating Code...
执行 cl.exe 时出错.

main.exe - 1 error(s), 0 warning(s)



怎么调试……用的vc6.0

#34


引用 33 楼 tearmap 的回复:
Compiling...
main.cpp
c:\documents and settings\administrator\my documents\vc6.0\main\regxstring.h(10) : error C2258: illegal pure syntax, must be '= 0'
c:\documents and settings\administrator\my ……

1. error C2252: 'REPEAT_INFINITE' : pure specifier can only be specified for functions
看来vc6不支持非0的static const常量初始化,简单的改法是:
#define REPEAT_INFINITE 3

2. error C2039: 'isspace' : is not a member of 'std'
应该是vc6没把isspace函数放在namespace std里,只能找找在哪里,修改一下了。

3. error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
呃~,如果是我,我就换个编译器。

后面的错误我也看不出来什么原因,不过引用别人的一句话:
珍惜生命,远离vc6.0

#35


下载看了一下,不错。
是否支持汉字?

#36


能不能给一下代码的注释啊?看不懂啊……感谢你的热心回复!

#37


引用 35 楼 zhao4zhong1 的回复:
下载看了一下,不错。
是否支持汉字?

不支持宽字符。

#38


我想学习一下这个代码,请问从哪下手?

#39


引用 38 楼 tearmap 的回复:
我想学习一下这个代码,请问从哪下手?

可以先看doc文档,从算法开始理解。

#40


我看了doc文档了,但是文档没有写程序的运行原理。能私聊么?你的QQ是多少?我的
QQ:35145066

#41


如果在java平台上实现 各位大神有没有实现方法呢

#42


你好!看了你的帖子,受益匪浅!希望后面有什么问题能与您交流!

#43


你好,能将dll及接口发我下么?407361892@qq.com
引用 15 楼 spike2004 的回复:
真的很强大 在VS中运行正常 可我想在Java中引用一下 用了JNI 却有如下的提示:
/dll
/implib:regexGenerate.lib
/out:regexGenerate.dll
regexGenerate.obj
   正在创建库 regexGenerate.lib 和对象 regexGenerate.exp
regexGenerate.obj : error LN……

#44


您好,我想请问您的dll是如何生成的?需要输入正则表达式字符串,且返回满足表达式的字符串数组,另外就是您说的数据重复问题解决了吗?如果解决的话,麻烦发dll和接口说明到我邮箱好么?407361892@qq.com
引用 29 楼 bawgiitx 的回复:
C/C++ code

//cpp
#include "RandomString.h"
#include "regxstring.h"
#include <math.h>
#include <stdio.h>
#include <string.h>


jstring stoJstring(JNIEnv* env, const char* pat) 

       jclass strC……

#45


怒赞,准备使用下这个库

#46


((http[s]{0,1}|ftp)://[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4})(:\d+)?(/[a-zA-Z0-9\.\-~!@#$%^&*+?:_/=<>]*)?)
会生成
ftp://U.Ch/" 

但不应该有双引号存在,检查发现可能是对字符^识别有问题

#47


C:\Documents and Settings\lx>echo "^kernel: CF: .*[Ff]ailed" | regxstr 2
"^kernel: CF: Failed"
"^kernel: CF: !oafailed"

windows里面怎么把"^"这个符号也输出来了?