标签: string-parsing

在C#中使用非捕获组的正则表达式

我使用以下正则表达式

JOINTS.*\s*(?:(\d*\s*\S*\s*\S*\s*\S*)\r\n\s*)*
Run Code Online (Sandbox Code Playgroud)

在以下类型的数据:

 JOINTS               DISPL.-X               DISPL.-Y               ROTATION


     1            0.000000E+00           0.975415E+01           0.616921E+01
     2            0.000000E+00           0.000000E+00           0.000000E+00
Run Code Online (Sandbox Code Playgroud)

这个想法是提取两个组,每个组包含一行(从联合号,1,2等开始)C#代码如下:

string jointPattern = @"JOINTS.*\s*(?:(\d*\s*\S*\s*\S*\s*\S*)\r\n\s*)*";
MatchCollection mc = Regex.Matches(outFileSection, jointPattern );
foreach (Capture c in mc[0].Captures)
{
    JointOutput j = new JointOutput();
    string[] vals = c.Value.Split();
    j.Joint = int.Parse(vals[0]) - 1;
    j.XDisplacement = float.Parse(vals[1]);
    j.YDisplacement = float.Parse(vals[2]);
    j.Rotation = float.Parse(vals[3]);
    joints.Add(j);
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用:它返回一个组:整个块,包括列标题,而不是返回两个捕获的组(内部组).为什么会这样?C#是否以不同方式处理未捕获的组?

最后,RegExes是最好的方法吗?(我真的觉得我现在有两个问题.)

.net c# regex string-parsing

13
推荐指数
1
解决办法
1万
查看次数

使用Java 8 java.time api解析ISO时间戳(仅限标准版)

我在例子中从字符串中获取毫秒数时遇到麻烦.到目前为止,我已经尝试了这三种不同的方式,示例显示了最新的尝试.似乎总是认为TemporalAccessor不支持ChronoField.如果我可以成功构建一个Instant实例,我可以使用toEpochMilli().

String dateStr = "2014-08-16T05:03:45-05:00"
TemporalAccessor creationAccessor = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(dateStr);
Instant creationDate = Instant.from(creationAccessor);
Run Code Online (Sandbox Code Playgroud)

请提供简明的答案(不要从头开始构建格式化程序)并仅使用java 8标准发行版(我可以使用Joda,但希望避免依赖项).

编辑:上面代码中的Instant.from抛出:java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {OffsetSeconds=-18000},ISO resolved to 2014-08-16T05:03:45 of type java.time.format.Parsed

java datetime string-parsing java-8 java-time

13
推荐指数
2
解决办法
1万
查看次数

取字符串的最后n行c#

我有一串未知的长度

它是格式

\nline
\nline
\nline
Run Code Online (Sandbox Code Playgroud)

知道多长时间我怎么能把字符串的最后10行用"\n"分隔一行

c# string string-parsing

11
推荐指数
3
解决办法
7607
查看次数

C#.解析并在字符串中找到一些单词

我有一些字符串

   bla bla bla bla  <I NEED THIS TEXT> 
Run Code Online (Sandbox Code Playgroud)

获取文本的最佳和最快的方法是<>什么?

.net c# string string-parsing

10
推荐指数
2
解决办法
6073
查看次数

相当于弹出字符串

给出一个非常大的字符串.我想在循环中处理部分字符串,如下所示:

large_string = "foobar..."
while large_string:
    process(large_string.pop(200))
Run Code Online (Sandbox Code Playgroud)

这样做的有效方式是什么?

python string string-parsing

10
推荐指数
2
解决办法
4万
查看次数

如何从jQuery .ajax帖子中显示返回的JSON

开始处理完全基于JSON数据构建的项目.它返回如下:

{"location":{"id":10,"contactPhone":"8675309","contactName":"bob","name":"bill smith","zipCode":"90210","state":"California","address1":"104 S. Olive","city":"Temecula","country":"USA"},"success":true}
Run Code Online (Sandbox Code Playgroud)

通过遍历带有.find和其他过滤的DOM来查找成功标志,我很乐意处理以HTML格式(通常是表格)返回的数据.我不知道如何用JSON做到这一点 - 我需要过滤到最后一个对象"success"并检查它是真还是假.使用HTML返回的数据,我这样做:

submitHandler: function(form) {
    $.ajax({
     //other ajax stuff
      success: function(data) {
        var answer = $(data).find("td:eq(1)").text();
        var message = $(data).find("td:eq(3)").text();
        //console.log(data);
        if (answer == "True") {
          $('#messages').show().html(message);
      } else {
          $('#messages').show().html('Error logging in: ' + message);
      }
    }
  });
  return false;
  }
Run Code Online (Sandbox Code Playgroud)
  1. 即使在使用这种方法之后,我也不完全理解函数(数据)意味着什么,我已经使用了数据,消息和响应 而没有真正理解它们之间的区别.

我可以发布到webservice并通过此.ajax调用获取返回的JSON

$.fn.serializeObject = function() {....}
submitHandler: function(form){
    var wrapper = {};
    var location = {};
    wrapper.location = $("#newLocation").serializeObject();
        $.ajax({
            type: $(form).attr('method'),
            url: '/web/service/' + 'locationService' + '/' …
Run Code Online (Sandbox Code Playgroud)

jquery parsing json string-parsing

10
推荐指数
1
解决办法
3万
查看次数

Javascript数学解析器库

Javascript中有一个很好的数学解析器吗?我希望能够解析类似的东西:

LOG(3.14)+5^2+POW(2,LN(X*2,Y))
Run Code Online (Sandbox Code Playgroud)

谢谢,

javascript math string-parsing

9
推荐指数
2
解决办法
3435
查看次数

解析所有可能类型的不同架构维度输入

我正在为我们公司的产品编写一个库,它将采用我们的用户已经熟悉的任何类型的体系结构维度作为从字符串转换为double的函数的输入.以下是我们希望有效的输入类型列表.

Input| 意义| Output(英寸由双人代表)


12.5' | 12英尺和6英寸|150.0

11" | 11英寸|11.0

3/16"| 英寸的3个十六分之一|0.1875


在英尺和英寸以及英寸和十六分之间可以使用或不使用空格

11' 11"| 11英尺和11英寸|143.0

11'11"| 11英尺和11英寸|143.0


在英尺和英寸之间或英寸和十六分之间或两者之间可以使用或不使用破折号

12'-11"| 12英尺和11英寸|155.0

12' 11 3/16"| 12英尺和11英寸和3个十六分之二|155.1875

12' 11-1/2"| 12英尺和11英寸和8个十六分之二|155.5


在英尺和英寸以及英寸和十六分之间可以使用任意数量的空间

12' 11 1/2"| 12英尺和11英寸和8个十六分之二|155.5


还提供了另一种更简单的格式

121103| 12英尺和11英寸和3个十六分之二|155.1875


每种格式都可以使用否定词

-121103| 12英尺和11英寸和3个十六分之二|-155.1875

-11'11"| 11英尺和11英寸|-143.0

我们目前正在使用一组极其复杂的分支逻辑来尝试确定输入尝试模拟的格式......并且它并不适用于所有情况.

是否有一些可能的LINQ和正则表达式和巫术的组合,我们可以用来确定如何解析字符串?

另请注意,我们确实希望避免在表单上给出一个简单的组合框来选择输入格式类型.

c# regex linq string string-parsing

9
推荐指数
1
解决办法
996
查看次数

从Python中删除字符串中的所有十六进制字符

虽然有类似的问题,但我似乎无法为我的案例找到一个有效的解决方案:

我在字符串中遇到一些讨厌的十六进制字符,例如

'\xe2\x80\x9chttp://www.google.com\xe2\x80\x9d blah blah#%#@$^blah'
Run Code Online (Sandbox Code Playgroud)

我需要的是删除这些十六进制\xHH字符,并单独删除它们,以获得以下结果:

'http://www.google.com blah blah#%#@$^blah'
Run Code Online (Sandbox Code Playgroud)

解码没有帮助:

s.decode('utf8') # u'\u201chttp://www.google.com\u201d blah blah#%#@$^blah'
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python utf-8 character-encoding string-parsing python-2.7

9
推荐指数
2
解决办法
2万
查看次数

java generic String to <T> parser

是否有直接的方法来实现具有以下签名的方法?至少,实现需要处理原始类型(例如Double和Integer).非原始类型将是一个很好的奖金.

//Attempt to instantiate an object of type T from the given input string
//Return a default value if parsing fails   
static <T> T fromString(String input, T defaultValue)
Run Code Online (Sandbox Code Playgroud)

对于实现FromString接口(或等效的)的对象,实现将是微不足道的,但我还没有找到任何这样的东西.我还没有找到使用反射的功能实现.

java generics string-parsing

8
推荐指数
1
解决办法
2万
查看次数