小编Inv*_*ion的帖子

正则表达式匹配包含空格的有效绝对Windows目录

我想要一个正则表达式来匹配一个有效的绝对Windows目录路径,其中目录名称可以包含空格.

示例匹配:

C:\pictures\holiday  (without trailing backslash)
C:\pictures\holiday\ (or with trailing backslash)
C:\ pictures\holiday
C:\ pictures\holiday\
C:\pictures \ holiday
C:\pictures \ holiday\
C:\pictures\ holiday \
Run Code Online (Sandbox Code Playgroud)

示例失败:

\pictures\holiday (no relative path allowed)
C:\pictures*\holiday (not a valid directory path)
Run Code Online (Sandbox Code Playgroud)

我试过了,^[a-zA-Z]:(\\\w+)*([\\])?$但这与空格不符.

我也试过^[a-zA-Z]:(\s)*(\\\w+)*(\s)*([\\])?$但是工作不正常.

正则表达式是我的最后手段.我还尝试使用非正则表达式解决方案来验证文本框,就像在这个答案中一样.但我还没有找到适用于空间的方法.

提前致谢!

regex

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

绑定在 Blazor 中使用 InputFile 选择的文件

我正在尝试在 BlazorInputFile组件中数据绑定一些用户选择的文件,特别AssociatedFiles是每个ToDoItem. 这不起作用,因为AssociatedFiles总是null.

这是我的剃须刀组件:

@page "/todo"

@using BlazorPlayground.Data

<h3>Todo List</h3>
Total items: @todos.Count()
<br />
Done: @todos.Count(x => x.IsDone) out of @todos.Count()
<br />
Not Done: @todos.Count(x => !x.IsDone) out of @todos.Count()
<br />

<ul>
    @foreach (var todo in todos)
    {
        <li>
            <input type="checkbox" @bind="todo.IsDone" />
            <input @bind="todo.Title" />
            <input type="datetime-local" @bind="todo.DateAdded" />
            <InputFile OnChange="@OnFileSelected" @bind-value="todo.AssociatedFiles" multiple  />
        </li>
    }
</ul>


<input placeholder="Write something to do..." @bind="newTodo" />
<button @onclick="AddTodo">Add …
Run Code Online (Sandbox Code Playgroud)

c# blazor

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

二进制搜索自定义数据类型列表以仅匹配一个字段

我有一个清单:

List<Student> allStudents = new List<Student>(); 
Run Code Online (Sandbox Code Playgroud)

包含超过94,000个Student对象,其中Student定义为:

public class Student
{
    public Int32 ID { get; set; }
    public String Surname { get; set; }
    public String Other_Names { get; set; }
    public String DOB { get; set; }
    // remaining fields omitted
}
Run Code Online (Sandbox Code Playgroud)

并按姓氏排序.

从其他源获取Student对象后,我想二元搜索List allStudents以仅基于Surname属性查找匹配项.例如,如果List allStudents中的现有记录是:

Student(8139241, "Flintstone", "Fred", "12/1/1967")
Run Code Online (Sandbox Code Playgroud)

我搜索该项目:

Student(7294311, "Flintstone", "Wilma", "14/6/1969")
Run Code Online (Sandbox Code Playgroud)

二进制搜索应该是成功的.

List.BinarySearch(T,IComparer)重载似乎是可能的,但它是一个可行的解决方案吗?还是有更好的策略?我将处理大量的记录和搜索,因此O(n)搜索功能将不可行.

提前致谢!

更新:我决定用Wintellect PowerCollections库中的MultiDictionary替换我的List.此MultiDictionary可以接受重复的键.

c# search list

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

在YASM或NASM程序集中执行退格

我有一个程序以原始模式读取字符。即,输入的任何字符都将立即读取而不是被缓冲。

我想知道如何执行退格键。也就是说,当我按下Backspace键时,它应该删除左侧的字符并将光标向左移动一个位置。

我试过输出一个Backspace字符,再跟一个Space字符。这会删除左侧的字符,但是由于某种原因会将光标向右移动两个空格。

我也尝试过自行输出Backspace字符。这会将光标向左移动一个空格,但不会删除该字符。

我的汇编程序是YASM,我正在使用64位Linux。以下是一些相关代码。

首先,这是我用来输出字符的函数:

printchar:                       
        mov     [buf], al      ; Backup whatever was in al.
                               ; buf is declared as resb 1 in section .bss
        mov     edx, 1
        mov     ecx, buf
        mov     ebx, 1
        mov     eax, 4
        int     0x80
        mov     al, [buf]    ; restore char that was previously in al
        ret
Run Code Online (Sandbox Code Playgroud)

以下代码显示退格键。它不会像常规的Backspace一样将光标向左移动一个位置。

    mov     al, 0x08 ; ASCII for Backspace
    call    printchar
Run Code Online (Sandbox Code Playgroud)

此代码打印一个Backspace,后面跟一个空格。它将光标向右移动两个空格,而不是一个空格。

    mov     al, 0x08 ; ASCII for Backspace
    call    printchar
    mov     al, 0x20 ; ASCII for …
Run Code Online (Sandbox Code Playgroud)

assembly x86-64 nasm yasm

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

调试使用yasm创建的汇编代码

我需要一些帮助,找到并使用一个好的调试器,用于在64位Linux上与yasm组装的asm代码.gdb调试器一直抱怨没有加载符号表.stackoverflow上有人建议使用-dstabs开关组装,但这对我来说没有任何区别.ddd也没有什么不同.

如果我能找到摆脱"无符号表加载"问题的方法,gdb就不会那么糟糕.我还需要能够查看寄存器和其他声明的内容.

我使用yasm -f elf -m amd64 file.asm和我链接来组装我的asm文件ld file.o -o file.使用-l开关使用yasm创建.lst文件似乎也不起作用.

我发现的关于这个问题的所有建议似乎与使用gcc作为链接器而不是ld有关.我需要能够与ld链接.

x86 assembly x86-64 nasm yasm

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

在C#中使用自定义格式解析文本文件

我有一堆具有自定义格式的文本文件,如下所示:

App Name    
Export Layout

Produced at 24/07/2011 09:53:21


Field Name                             Length                                                       

NAME                                   100                                                           
FULLNAME1                              150                                                           
ADDR1                                  80                                                           
ADDR2                                  80          
Run Code Online (Sandbox Code Playgroud)

任何空格都可以是制表符或空格.该文件可能包含任意数量的字段名称和长度.

我想获取所有字段名称及其相应的字段长度,并可能将它们存储在字典中.该信息将用于处理具有所述字段名称和字段长度的相应固定宽度数据文件.

我知道如何使用ReadLine()跳过行.我不知道的是怎么说:"当你到达以'Field Name'开头的行时,再跳过一行,然后从下一行开始,抓住左栏中的所有单词和上面的数字.右栏."

我已经尝试过String.Trim(),但这并没有删除它们之间的空格.

提前致谢.

.net c# parsing

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

如何在不循环ReadLine()的情况下读取文本文件的特定行号?

是否有一个类允许您在C#中按行号读取行?

我知道StreamReader和TextFieldParser,但AFAIK没有这个功能.例如,如果我知道我的文本文件中的行号34572包含某些数据,那么不必调用StreamReader.ReadLine()34572次就好了.

.net c# parsing

0
推荐指数
2
解决办法
5655
查看次数

解析一串逗号分隔值

从一串以逗号分隔的数字中提取值的最优雅方法是什么?

它也应该考虑空白.例:

输入字符串:"22,10,8,13"
输入字符串:"22, 10, 8, 13"
输入字符串:"22, 10 ,8 ,13,"

给定所有三个输入,该方法应识别这些值.所有三个输入的示例输出:"String contains: 22 10 8 13"

可能的重复:将逗号分隔的字符串解析为某种对象的最简单方法我可以循环访问各个值?

c# csv parsing

-1
推荐指数
1
解决办法
755
查看次数

标签 统计

c# ×5

parsing ×3

.net ×2

assembly ×2

nasm ×2

x86-64 ×2

yasm ×2

blazor ×1

csv ×1

list ×1

regex ×1

search ×1

x86 ×1