草庐IT

java - 如何在 Java 中使用 REGEX 解析字符串中的浮点值

我想从中解析浮点值CallCost:Rs.13.04Duration:00:00:02Bal:Rs.14.672016meinPromotion从上面的字符串我需要13.04和14.67。我使用了以下正则表达式Patternp=Pattern.compile("\\d*\\.\\d+");Matcherm=p.matcher(s);while(m.find()){System.out.println(">>"+m.group());}但是使用这个我得到“.13”、“.04”、“.14”、“.67”提前致谢 最佳答案 使用\\d+代替

匹配Java Regex表达式中的字符串

我想使用字符串类的“匹配”方法。我不想创建模式和匹配对象并使用matcher.find()匹配我正在使用的特定字符串。这是我的代码:Stringstring="-12Log";if(string.matches("-?\\d+(\\.\\d*)?[Log]")System.out.println("dinos");我使用了不同类型的Regexes,没有成功。我使用了以下内容:-?\\d+(\\.\\d*)?\\[Log]-?\\d+(\\.\\d*)?[+a-zA-Z]-?\\d+(\\.\\d*)?+[a-zA-Z]请注意,我不想将字符串分解为其字符。我想按原样使用字符串。任何想法,将不胜感

如何在app.yaml中使用Regex处理虚拟子目录?

我想将所有访问者都指向“单个子目录”,并将所有访问者都介绍给另一页。例如:/foo//new//north//1-j4/所有人都指向1.app,而/foo/bar//new/york//north/west//1-j4/a_990/所有人都指向2.App。我认为我可以使用非怪兽的正则匹配来做到这一点,就像这样:-url:/(.*?)/$script:1.app-url:/(.*?)/(.*?)/$script:2.app令我困惑的是,/foo/and/foo/bar/bar/bar/bar/bar/bar/bar/bar/bar/bar/bar/bar/bar/bar/app。“懒惰”的正则迫

C#REGEX使用可变性

我最熟悉PowerShell,最近已进入使用C#作为我的主要语言。在Powershell中,可以做以下$var1="abc""abc"-match"$var1"这导致了一个真实的声明。我希望能够在C#中做同样的事情。我知道您可以使用C#使用插值,并且我尝试了各种尝试使用Regex.Match()而没有运气的方法。例子:stringtoMatch="abc";varresult=Regex.Match("abc",$"{{toMatch}}");vara=Regex.Match("abc",$"{{{toMatch}}}");varb=Regex.Match("abc",$"{toMatch}"

c++ - 这是 clang c++11 std::regex_match 的一个特性还是一个错误?

我注意到如果第一个模式是第二个模式的开始部分(在clang3.5和clang3.8上测试),则包含两个带OR条件的模式的正则表达式不匹配示例字符串:std::regex_match("ab",std::regex("(ab|a)"))==true但是std::regex_match("ab",std::regex("(a|ab)"))==false我认为true在这两种情况下在逻辑上都是正确的。Clang和OSX:$cat>test.cpp#include#include#includeintmain(){std::coutClang和FreeBSD:$cat>test.cpp#inc

使用 -O1 编译时 C++ regex_search 中断

这个问题在这里已经有了答案:Inconsistentbehaviorofstd::regex(1个回答)关闭3年前。示例代码:#include#include#includeintmain(){std::regexnpat(R"(^(\d+))");std::smatchm;std::regex_search(std::string("10"),m,npat);std::cout编译时g++-std=c++11main.cpp输出是2m.str(1):|10|10这是预期的。但是,当用编译时g++-std=c++11-O1main.cpp输出变成libc++abi.dylib:term

c++ - 没有匹配函数调用 ‘regex_search(...)'

给定一个旧式constchar*指针和一个长度,有没有一种方法可以调用std::regex_search()而无需先复制其内容缓冲区到std::string?这是我遇到的问题的一个简单示例:#includeintmain(){constchar*text="123foobar456";constsize_tlen=strlen(text);conststd::regexrx("(.+)bar");std::smatchwhat;std::regex_search(text,text+len,what,rx);//我认为需要两个迭代器的第5个std::regex_search()是我需要

c++ - 正则表达式无法按预期使用 C++ regex_match

我正在研究c++11中的正则表达式,这个正则表达式搜索返回false。有人知道我在这里做错了什么吗?.我知道.*代表除换行符之外的任意数量的字符。所以我期待regex_match()返回true并且输出被“找到”。然而,输出结果是“未找到”。#include#includeusingnamespacestd;intmain(){boolfound=regex_match("",regex("h.*l"));//worksfor""cout 最佳答案 您需要使用regex_search而不是regex_match:boolfound=

c++ - 如何获得 std::regex 的所有可能匹配项

我想找到正则表达式的所有可能匹配项,这怎么可能?regexrx("(2|25)");strings="2225";for(sregex_iteratorit(s.begin(),s.end(),rx),end;it!=end;++it){coutposition()str()给出输出:0:21:22:25但找不到第三个2:2。我更喜欢使用正则表达式,因为O(n)同时搜索多个标记的复杂性。更新:也许将标记列表拆分为不可前缀的列表并创建多个正则表达式?例如:(2|4|25|45|251|455|267)=>(2|4),(25|45|267),(251|455)这会增加复杂度,比如O(nlo

c++11/regex - 搜索精确的字符串,转义

这个问题在这里已经有了答案:std::regexescapespecialcharactersforuseinregex(3个答案)关闭6年前。假设您有一个由用户提供的字符串。它可以包含任何类型的字符。例子是:std::strings1{"helloworld");std::strings1{".*");std::strings1{"*{}97(}{.}}\\testing___justa--%#$%#literal%$#%^"};...现在我想在一些文本中搜索>>的出现后跟输入字符串s1其次是.为此,我有以下代码:std::stringinput;//theinputtextstd: