首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式不匹配浮点值

正则表达式不匹配浮点值
EN

Stack Overflow用户
提问于 2015-07-28 06:01:05
回答 1查看 408关注 0票数 1

我试图为这2行字符串编写一个正则表达式。

代码语言:javascript
复制
txt="[0, 0, 1.8, 1.0] value = 9.99999986991104E14";
txt="[0, 0, 1, 1] value = 9.99999986991104E14";

String re1=".*?";   // Non-greedy match on filler
String re2="\\d+";  // Uninteresting: int
String re3=".*?";   // Non-greedy match on filler
String re4="\\d+";  // Uninteresting: int
/*
* x 3rd value
*/
String re5=".*?";   // Non-greedy match on filler
String re6="(\\d+)";    // Integer Number 1
/*
* y 4 th value
*/
String re7=".*?";   // Non-greedy match on filler
String re8="(\\d+)";    // Integer Number 2
/*
* value
*/
String re9=".*?";   // Non-greedy match on filler
String re10="([+-]?\\d*\\.\\d+)(?![-+0-9\\.])"; // Float 1
String re11="((?:[a-z][a-z]*[0-9]+[a-z0-9]*))"; // Alphanum 1

Pattern p = Pattern.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9+re10+re11,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(txt);

if (m.find())
{
    String x = m.group(1);
    String y = m.group(2);
    String value = m.group(3)+m.group(4);
    System.out.print("x "+x.toString()+" y "+y.toString()+" value"+value.toString()+"\n");
}

这些正则表达式给出了以下结果

代码语言:javascript
复制
case 1: x 1 y 8 value9.99999986991104E14
Case 2: x 1 y 1 value9.99999986991104E14

然而,我原以为结果会是(案例1)

代码语言:javascript
复制
 Case 1: x 1.8 y 1.0 value9.99999986991104E14
 Case 2: x 1 y 1 value9.99999986991104E14

对于x,y和值。我需要匹配整数和浮点值。

我的正则表达式有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-28 07:35:42

查看re6re8的值,您只查看非十进制值(不包括点)。

我建议包括以下修改的点

代码语言:javascript
复制
String re6 = "([.\\d]+)";

代码语言:javascript
复制
String re8 = "([.\\d]+)";

编辑"value“部分的添加内容:

对于最后一个组,您正在尝试获取数字字符串,我将这样做:

代码语言:javascript
复制
String re10 = "value ="; // Searching for fixed String value
String re11 = "[ ]*"; // Looking for whitespaces
String re12 = "([.E\\d]+)";// Looking for A String containing: Numbers/Dots/Letter-E at with at least one match

一组匹配这两种情况:包括或不包括E,是否包含点。-由于值字符串是固定的,所以我将其包含在regex中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31668448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档