gpt4 book ai didi

c# - 简单的正则表达式不匹配

转载 作者:行者123 更新时间:2023-11-30 04:13:42 25 4
gpt4 key购买 nike

我有一个简单的 C++、COM 可见的正则表达式实用程序,它根据是否找到匹配项返回 true/false。 A [A](借用单元测试中的方法签名)之类的表达式匹配。匹配 Excel 范围字符串 (A1:Z10) 的一个很好的表达式工作得很好。但是像

这样的表达
This is a long sentence.

[A-Za-Z]* 无论是否忽略大写,都不会匹配。我已经尝试了我能想到的变体:\w[A-Z]*(忽略大写集),一个 .NET 变体\p...(现在不记得了!)。什么都不管用。有趣的是,我在 VS2012 中有两个不同的正则表达式测试器插件,它们都说正则表达式在句子上确实匹配。

/编辑/不要认为这会有多大帮助,但这是 C++ 代码的操作部分:

<!-- language: lang-cpp -->
varRegex.ChangeType(VT_BSTR);

using namespace std::regex_constants;
wregex regexPredicate((wchar_t*)varRegex.bstrVal, ECMAScript|icase);

if (varValue.vt == VT_BSTR)
{
pRetVal->vt = VT_BOOL;
pRetVal->boolVal = std::regex_match( static_cast<wchar_t*>(varValue.bstrVal), regexPredicate )
? VARIANT_TRUE : VARIANT_FALSE;
}

嗯……我一定是用错了。

想法?

谢谢。

最佳答案

对于您的示例字符串This is a long sentence.您需要使用量词。

[a-zA-Z\. ]*   matches any character of a-z or A-Z, ' ' and '.' (0 or more times)

识别以下量词。

*      Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
{n} Match exactly n times
{n,} Match at least n times
{n,m} Match at least n but not more than m times

关于c# - 简单的正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282257/

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