/?\s]*$ 是一个正则表达式,可以让我找到所有带或不带特殊字符的数字序列。 通过使用 exp,我设法提取了所有大于-6ren">
gpt4 book ai didi

c++ - 正则表达式找不到数字序列

转载 作者:行者123 更新时间:2023-11-28 00:37:27 25 4
gpt4 key购买 nike

exp = ^[0-9!@#$%^&*()_+-=[]{};':"\|,.<>/?\s]*$

是一个正则表达式,可以让我找到所有带或不带特殊字符的数字序列。

通过使用 exp,我设法提取了所有大于 5 的数字序列。但是无法提取数字 98200。我没有对数字序列的长度设置任何限制。源代码:

#include <boost/regex.hpp>
#include iostream;

using namespace std;

int main()
{
string s = "16000";
string exp = ^[0-9!@#$%^&*()_+-=[]{};':"\\|,.<>\\/?\\s]*$
const boost::regex e(exp);
bool isSequence = boost::regex_match(s,e);
//isSequence is boolean and should be equal to 1
cout << isSequence << endl;

return 0;

}

最佳答案

在 C# 中,您需要转义 ]。当它们在字符类中时,您不需要转义 [ {} ()。此外,如果您想将破折号作为包含字符包含在字符类中,它应该位于列表的开头或结尾。您拥有的 +-= 序列转换为 [+,-./0123456789:;<=] ,这使您的正则表达式变得多余。最后,由于终端量词,您允许匹配零长度字符串。这可能是您想要的,但如果不是,请考虑使用“+”量词。

简单的怎么样

[^A-Za-z]+ 

在开头/结尾有或没有 ^ $ anchor

关于c++ - 正则表达式找不到数字序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com