小编Joe*_*Joe的帖子

正则表达式发生器/减速器?

我提出从我们目前的业务痛点同事一个有趣的问题,并很好奇,如果有什么事,在那里(工具/库/算法),这可能有助于自动执行此.

假设您有一个文字值列表(在我们的例子中,它们是URL).我们想要做的是,根据这个列表,提出一个匹配所有这些文字项的正则表达式.

所以,如果我的列表是:

http://www.example.com
http://www.example.com/subdir
http://foo.example.com
Run Code Online (Sandbox Code Playgroud)

最简单的答案是

^(http://www.example.com|http://www.example.com/subdir|http://foo.example.com)$
Run Code Online (Sandbox Code Playgroud)

但是这对于大量数据而言变得很大,而且我们有一个长度限制,我们试图保持不变.

目前我们手动编写正则表达式,但这不能很好地扩展,也不是很好地利用任何人的时间.有没有分解源数据拿出匹配所有的源值的长度最佳的正则表达式的更自动化的方式?

regex algorithm

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

定义"自定义"基于整数的类型?

我有一个与外部库连接的程序,除了其他外,它还有一个无符号的12位值,包含在一个更大的结构中.

这曾经是8位,所以我们只是将其编组为一个字节.

现在它是12位...我可以使用ushort,但这会打开(a)范围检查和(b)编组的问题.

是否有一种简单的方法来实现这样的约束数值类型,我不必覆盖每个赋值和比较方法?

c#

17
推荐指数
2
解决办法
7492
查看次数

在 ReactJS 的组件构造函数方法中获取上下文值的任何方法

除了我在组件类中声明的render方法 constructor 或自定义函数之外,有没有办法在另一个地方获取和处理上下文值?

以我所知的方式,消费者标签围绕着 fetch 函数,但是,我不想处理消费者标签中的值。

任何的想法?

reactjs

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

如何使用execvp()

用户将读取一行,我将保留第一个单词作为execvp的命令.

让我们说他会输入"cat file.txt" ...命令将是cat.但我不知道如何使用它execvp(),我读了一些教程,但仍然没有得到它.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char *buf;
    char command[32];
    char name[32];
    char *pointer;
    char line[80];
    printf(">");

    while((buf = readline(""))!=NULL){   
        if (strcmp(buf,"exit")==0)
        break;

        if(buf[0]!=NULL)
        add_history(buf);

        pointer = strtok(buf, " ");
        if(pointer != NULL){
            strcpy(command, pointer);
        }

        pid_t pid;

        int  status;

        if ((pid = fork()) < 0) {     
            printf("*** ERROR: forking child process failed\n");
            exit(1);
        }
        else if (pid == 0) {          
            if (execvp(command, buf) < 0) {     
                printf("*** ERROR: exec failed\n");
                exit(1); …
Run Code Online (Sandbox Code Playgroud)

c shell fork execvp

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

为什么Delphi中的类没有运算符重载?

我总是想知道这一点,但为什么运算符重载不适用于Delphi中的类?

我记得在跑步时读了一次答案,它说它会与某些东西发生冲突,但我记不起来了.据我所知,只有隐式运算符可能会导致一些问题,因为类存储在堆上并且赋值实际上是堆地址的副本(基本上是复制指针).

delphi class operator-overloading

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

从自定义属性装饰属性获取价值?

我编写了一个我在类的某些成员上使用的自定义属性:

public class Dummy
{
    [MyAttribute]
    public string Foo { get; set; }

    [MyAttribute]
    public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我能够从类型中获取自定义属性并找到我的特定属性.我无法弄清楚怎么做是获取指定属性的值.当我接受Dummy的一个实例并将它(作为一个对象)传递给我的方法时,我怎样才能获取我从.GetProperties()获取的PropertyInfo对象并获取分配给.Foo和.Bar的值?

编辑:

我的问题是我无法弄清楚如何正确调用GetValue.

void TestMethod (object o)
{
    Type t = o.GetType();

    var props = t.GetProperties();
    foreach (var prop in props)
    {
        var propattr = prop.GetCustomAttributes(false);

        object attr = (from row in propattr where row.GetType() == typeof(MyAttribute) select row).First();
        if (attr == null)
            continue;

        MyAttribute myattr = (MyAttribute)attr;

        var value = prop.GetValue(prop, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,prop.GetValue调用给了我一个TargetException - 对象与目标类型不匹配.如何构建此调用以获取此值?

.net c# custom-properties

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

是否为抽象类的所有派生类型的KnownType?

我们有一个抽象类,它是我们通过WCF服务发送的许多不同请求的基础.这是一个丑陋的令人发指的黑客,每当我们添加一个新的请求时,我们必须记住将[KnownType]属性添加到这个基类.

有没有办法告诉将DataContractSerializer这种抽象类型的所有派生对待KnownType

.net wcf abstract-class known-types

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

多年的参数类型

我正在写一个接受年份作为参数的方法.即四位数等于或小于当前年份.日历只有格里高利(现在......不确定未来)我肯定不会需要BC.

我要使用哪种数据类型?明显的解决方案是使用DateTime或Int32:

public void MyFunction(DateTime date)
{
     // year to work with: date.Year;
     // date.Month, date.Day, etc. is irrelevant and will always be
}
Run Code Online (Sandbox Code Playgroud)

要么

public void MyFunction(Int year)
{
     if ( year > 9999 || otherValidations == false )
     {
         //throw new Exception...
     }

     // year to work with: new DateTime(year, 1, 1);
}
Run Code Online (Sandbox Code Playgroud)

除了编写自己的自定义数据类型年以外,还有其他选择吗?

c# types

12
推荐指数
3
解决办法
3483
查看次数

Linux中的应用程序计数器 (和OSX?)

我试图弄清楚是否有一个库给我一些接近相当于Windows自定义性能计数器的东西(这里描述http://geekswithblogs.net/.NETonMyMind/archive/2006/08/20/88549.aspx)

基本上,我正在寻找可用于跟踪应用程序中的全局计数器的东西,以及(理想情况下)通过定义良好的接口向其他应用程序/用户呈现该信息的东西.这些是应用统计; 像内存和磁盘这样的东西可以通过其他方式捕获,但我希望公开在我的应用程序生命周期中处理的吞吐量/事务/"小部件".

我见过这个问题:

Linux/Unix中"性能计数器"的概念

还有这个

Linux中的注册表级别计数器可从Java访问

但这两者都不是我想要的.我不想写一个静态文件(毕竟这是动态信息;即使磁盘已满,我也应该能够得到它),而且如果可能的话,宁可避免使用自己开发的代码集.理想情况下,至少在Linux上,这些数据(我认为)会以某种方式通过/ proc浮出水面,虽然我不清楚是否可以从用户区域完成(这不太重要,只要它在某些方面浮出水面)给客户的方式.)

但回到问题的关键:是否有任何内置或合适的第三方库为我提供适用于我可以在Linux和其他*NIXy操作系统上使用的应用程序指标的自定义全局(线程安全,高性能)计数器?(并且可以从C/C++接口?)

linux performancecounter

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

ReentrantReadWriteLock - 一次很多读者,一次一个作家?

我对多线程环境有些新意,我正在尝试为以下情况提出最佳解决方案:

我每天早上从数据库中读取一次数据,并将数据存储在Singleton对象的HashMap中.我有一个setter方法,只有在发生日内DB更改时才会调用(每天会发生0-2次).

我还有一个getter,它在地图中返回一个元素,这个方法每天被调用数百次.

我担心在我清空和重新创建HashMap时调用getter的情况,因此试图在空/格式错误的列表中找到一个元素.如果我使这些方法同步,它会阻止两个读者同时访问getter,这可能是性能瓶颈.由于写入很少发生,我不想过多地受到性能影响.如果我使用ReentrantReadWriteLock,这会强制任何调用getter的队列,直到释放写锁定为止?是否允许多个读者同时访问getter?它一次只会强制执行一个作者吗?

编码这只是一个问题......

private final ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock();
private final Lock read = readWriteLock.readLock();
private final Lock write = readWriteLock.writeLock();

public HashMap getter(String a) {
    read.lock();
    try {
        return myStuff_.get(a);            
    } finally {
        read.unlock();
    }
}

public void setter() 
{
    write.lock();
    try {
        myStuff_ = // my logic
     } finally {
          write.unlock();
    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronized reentrantreadwritelock

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