问题列表 - 第17562页

RegEx - 只有一封有效的电子邮件

我知道这是我的错,并不复杂,但我自己找不到答案,所以我求求你帮我建立这个RegEx.

我试图避免用户逐行输入多个电子邮件地址,所以我想将"@"事件限制为仅1并检查是否有逗号(,)....

这是RegEx的简化版本,我已经用它来检查输入....

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
Run Code Online (Sandbox Code Playgroud)

我怎么能介绍一个部分来检查最后一部分没有(@,)?

提前致谢

regex email

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

Erlang文档/ SMP:每台机器或每个应用程序的单节点和多节点,以及可能出现的混乱

我正在研究Erlang的流程模型.关于Erlang 的技术报告(第3节,第2段)我遇到了障碍:

这解释了为什么在某些情况下,使用一个调度程序而不是在具有多个调度程序的一个SMP VM上运行多个SMP VM可以更高效.当然,运行多个VM需要应用程序可以在许多并行任务中运行,这些任务彼此之间没有或很少有通信.

现在这一段令我困惑; 我可以看到单进程多调度程序场景,但是我没有看到使用单个调度程序的多个进程; 据推测,每个进程都有不同的节点名称,这意味着某个应用程序无需修改就无法与此模型一起使用; 在报告中提到了不需要修改的优点作为SMP的一个关键特征.如果多个进程具有相同的节点名称,那么由于Erlang-process间的消息风暴,性能将是灾难性的 - 这假设使用了内存中的健忘症.是否有一些过程模型没有在文章中介绍,我在这里缺少?

作者试图在这说什么?他是否试图建议为多进程单调度程序案例重写一个应用程序(将多个唯一的节点名称考虑在内)?

- 编辑1:澄清问题根源 -

通过讨论回答了这个问题; 以下是我遇到的麻烦的概述.

这个问题的问题在于,我记得,文档没有触及每个物理机器运行多个Erlang仿真器的情况 - 它总是表明仿真器代表你的物理机器(工业用途); 此外,从未考虑过必须明确划分程序以提高计算效率的方案.这突然的介绍一直是我的悲哀的源头.

该约定仍然偏向于创建大量进程,并且未来对于Erlang的SMP仿真器进行了许多改进,这意味着假设有利的应用程序设计,每台机器的单个节点仍然是一个非常可行的选择.

erlang ipc scheduled-tasks smp

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

hpp和hxx有什么区别?

对于gcc他们应该是一样的吧?其中一个更受欢迎,我现在正在从头开始准备一个项目,我想从这两个中选择一个.

谢谢

c++

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

为什么人们继续使用xml映射文件而不是注释?

我观察到一个奇怪的事实(基于hibernate标记中的问题),人们仍在积极使用xml文件而不是注释来指定它们的ORM(Hibernate/JPA)映射.

有几种情况,这是必要的:

  • 您正在使用提供的类,并且您想要映射它们.
  • 您正在编写一个API,其域类可以在没有JPA提供程序的情况下使用,因此您不希望强制使用JPA/Hibernate依赖项.

但我认为这些并不常见.

我的假设是:

  • 人们习惯于使用xml文件,感觉不舒服/不想学习使用注释方法.
  • Java 1.5之前的版本被强加于项目,并且没有任何关系
  • 人们不知道注释是xml映射的全功能替代品.
  • 支持遗留系统,因此改变方法被认为是有风险的
  • 人们担心将注释(元信息)与他们的类混合是错误的.

还有其他可能的解释吗?

java orm annotations hibernate jpa

37
推荐指数
3
解决办法
7078
查看次数

在C#中公开实现绳索?

是否在C#中公开实现了Rope数据结构?

c# string ropes

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

如何使Ruby AES-256-CBC和PHP MCRYPT_RIJNDAEL_128一起发挥得很好

我正在生成要从Ruby堆栈发送到PHP堆栈的数据.我在Ruby端使用OpenSSL :: Cipher库,在PHP使用'mcrypt'库.当我在Ruby中使用'aes-256-cbc'(256位块大小)进行加密时,我需要在PHP中使用MCRYPT_RIJNDAEL_128(128位块大小)来解密它.我怀疑Ruby代码坏了,因为cipher.iv_len是16; 我相信它应该是32:

>> cipher = OpenSSL::Cipher::Cipher.new('aes-128-cbc')
=> #<OpenSSL::Cipher::Cipher:0x3067c5c>
>> cipher.key_len
=> 16
>> cipher.iv_len
=> 16
>> cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
=> #<OpenSSL::Cipher::Cipher:0x306de18>
>> cipher.key_len
=> 32
>> cipher.iv_len
=> 16
Run Code Online (Sandbox Code Playgroud)

所以这是我的考试.在Ruby方面,首先我生成密钥和iv:

>> cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
>> cipher.encrypt
>> iv = cipher.random_iv
>> iv64 = [iv].pack("m").strip
=> "vCkaypm5tPmtP3TF7aWrug=="
>> key = cipher.random_key
>> key64 = [key].pack("m").strip
=> "RIvFgoi9xZaHS/0Bp0J9WDRyND6Z7jrd3btiAfcQ8Y0="
Run Code Online (Sandbox Code Playgroud)

然后我使用这些密钥进行加密:

>> plain_data = "Hi, Don, this is a string."
>> cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
>> cipher.encrypt
>> cipher.key = Base64.decode64(key64)
>> …
Run Code Online (Sandbox Code Playgroud)

php ruby openssl aes mcrypt

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

有没有办法在打开firefox时从Selenium IDE中自动运行测试套件?

我想在Windows上创建脚本或批处理文件,自动打开Selenium IDE(插件)并打开并运行测试文件.

browser testing selenium automation selenium-ide

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

按Powershell中文件名的最后一个字符排序文件

我被朋友挑战要做以下事情:

"找到按文件名的最后一个字符排序目录列表​​的最快捷最简单的方法."

他是在Linux上使用以下方法完成的:

ls | rev | sort | rev 
Run Code Online (Sandbox Code Playgroud)

我想向他展示powershell的替代方案,但我只是刚刚开始学习powershell而我无法做到.所以,我在欺骗并寻求你的帮助.

powershell

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

如何在第一时间编写正确的代码?

在第一次尝试完成某些编程任务时,我经常犯很多错误(逻辑错误,语法错误).我必须编写单元测试来检测这些错误.当我在接受采访时,这尤其成问题.在那种情况下,我处于压力之下,我无法使用编译器和单元测试来测试我的代码.

我的问题是,我怎样才能首先编写正确的代码?我知道这很难.是否有任何务实的方法来首次减少错误?

我被要求编写一个函数,它接收一个指向int数组的指针和数组的大小.用素数填充该数组.这根本不是一个难题.但是我第一次犯了很多错误,不断发现新的错误.由于这是一次电话采访,我被要求输入答案并发送邮件.

我的第一次尝试

    void prim(int * array, int size) 
{ bool isPrime = true; 
for (int i=0;i<size;i++) 
{  
for (int j = 2;j<i/2;j++)  
{    if (i%j==0){
        isPrime = ture;
        *array = i;
        array++;

      }  } } }
Run Code Online (Sandbox Code Playgroud)

在gmail中编写代码是一个非常糟糕的主意.我永远不会再这样做了.我知道程序需要两个for循环.但是代码中存在一些大问题

  1. 'i'不应该在第一个循环结束时增加.
  2. 如果i%j == 0,则isPrime应为false
  3. 当我们找到一个素数时,数组操作应该放在循环的末尾

我的第二次尝试,我添加了isPrime测试,修复了一些错误并重新提交.

    void prim(int * array, int size)
    {
    bool isPrime = true;

    for (int i=0;i<size;i++)
    {

     isPrime = true;
 for (int j = 2;j<i/2;j++)
 {
   if (i%j==0){
    isPrime = false;
  } …
Run Code Online (Sandbox Code Playgroud)

correctness

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

浏览器如何知道网页已更改?

这是一件非常容易让我觉得我应该知道的事情 - 但我不知道,并且找不到多少.

问题是:浏览器究竟如何知道网页已更改?

直观地说,我会说F5刷新给定页面的缓存,并且该缓存仅用于历史导航并且具有到期日期 - 这使我认为浏览器永远不知道网页是否已经改变,并且它只是重新加载页面如果缓存消失了 - 但我确信情况并非总是这样.

任何指针赞赏!

browser caching

3
推荐指数
2
解决办法
6394
查看次数