小编ebr*_*hez的帖子

正则表达式匹配的东西,如果没有其他东西

因此,对于java中的正则表达式,我想编写一个正则表达式,当且仅当模式前面没有某些字符时才匹配.例如:

String s = "foobar barbar beachbar crowbar bar ";
Run Code Online (Sandbox Code Playgroud)

如果bar之前没有foo,我想匹配.所以输出将是:

barbar
beachbar
crowbar
bar
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个非常简单的问题.我正在努力学习正则表达式,但与此同时我需要一些工作才能正常工作.

java regex

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

Scala Map实现按插入顺序保留条目?

在Java中,我LinkedHashMap用于此目的.Java的文档LinkedHashMap很清楚,它具有"可预测的迭代顺序",我在Scala中需要相同的东西.

Scala有ListMapLinkedHashMap,但他们这样做究竟是什么文件很糟糕.

问题:Scala LinkedHashMapListMap实现是否用于此目的?如果没有,除了LinkedHashMap直接使用Java之外还有哪些其他选项?

scala scala-2.8 scala-collections ordered-map

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

为什么我在一个案例中获得"扩展函数的缺失参数"而不是另一个案例?

这种情况有效:

Seq(fromDir, toDir) find (!_.isDirectory) foreach (println(_))
Run Code Online (Sandbox Code Playgroud)

然而,这不是:

Seq(fromDir, toDir) find (!_.isDirectory) foreach (throw new Exception(_.toString))
Run Code Online (Sandbox Code Playgroud)

编译以此错误结束:

error: missing parameter type for expanded function ((x$4) => x$4.toString)
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样写它再次编译:

Seq(fromDir, toDir) find (!_.isDirectory) foreach (s => throw new Exception(s.toString))
Run Code Online (Sandbox Code Playgroud)

我相信有合理的解释;)

scala

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

扩展Scala的箭头表示法

Scala,in Predef,定义支持->?(这里清理了一下):

final class ArrowAssoc[A](val __leftOfArrow: A) extends AnyVal {    
    def -> [B](y: B): Tuple2[A, B] = Tuple2(__leftOfArrow, y)
    def ?[B](y: B): Tuple2[A, B] = ->(y)
}
Run Code Online (Sandbox Code Playgroud)

这样可以方便地使用箭头符号而不是普通元组语法创建对:

scala> "foo" ? 42
res0: (String, Int) = (foo,42)
Run Code Online (Sandbox Code Playgroud)

可以使用类型定义和提取器轻松扩展此箭头语法(此处仅?显示):

type ?[A, B] = (A, B)
object ? { def unapply[A, B](t: (A, B)) = Some(t) }
Run Code Online (Sandbox Code Playgroud)

这允许你写下这样的东西:

"a" ? 42 match { case a ? b ? println(s"found `$a` and `$b`") }
Run Code Online (Sandbox Code Playgroud)

和:

def …
Run Code Online (Sandbox Code Playgroud)

scala

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

在HTML textarea上模拟HTML输入"maxlength"属性的最佳方法是什么?

HTML文本输入具有称为"maxlength"的属性,由浏览器实现,如果设置在一定数量的字符之后阻止用户输入.

另一方面,HTML textarea元素没有此属性.我的目标是模拟HTML textarea上maxlength的行为.要求:

  • 至少,显示(CSS更改)用户键入太多字符.
  • 理想情况下,阻止用户输入更多字符,就像在HTML输入上一样.

据了解,服务器端验证应该再次检查长度.在这里,我只关注客户端部分.

我的问题是:在HTML textarea上模拟maxlength的最干净的客户端方法是什么?理想情况下,指向您使用过的经过验证的开源JavaScript代码.

html javascript textarea

14
推荐指数
3
解决办法
9333
查看次数

Java中的HTTP头编码/解码

正在将自定义HTTP标头传递给Servlet应用程序以进行身份​​验证.标头值必须能够包含重音和其他非ASCII字符,因此必须采用特定编码(理想情况下为UTF-8).

控制身份验证环境的开发人员向我提供了这段Java代码:

String firstName = request.getHeader("my-custom-header"); 
String decodedFirstName = new String(firstName.getBytes(),"UTF-8");
Run Code Online (Sandbox Code Playgroud)

但是这段代码对我来说看起来并不合适:它假定了头值的编码,当我觉得有一种正确的方法来指定头值的编码时(我认为来自MIME).

这是我的问题:处理需要支持UTF-8编码的自定义标头值的正确方法(tm)是什么:

  • 在电线上(标题在电线上的样子)
  • 从解码的角度来看(如何使用Java Servlet API对其进行解码,我们可以假设request.getHeader()已经正确地进行了解码)

这是一个与环境无关的代码示例,如果您无法更改服务,则将标头视为UTF-8:

String valueAsISO = request.getHeader("my-custom-header"); 
String valueAsUTF8 = new String(firstName.getBytes("ISO8859-1"),"UTF-8");
Run Code Online (Sandbox Code Playgroud)

java servlets header http utf-8

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

XForms仍然是现场标准吗?

XForms标准页面似乎表明它已不再存在,并且html5有点排序现在可以完成工作.是这样的吗?我正在考虑将异构数据块存储为XML片段 - 根据数据类型生成编辑器页面.

standards xforms

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

Scala表达式替换字符串中的文件扩展名

这是我用split编写的一个版本:

fileName.split('.').init ++ Seq("js") mkString "."
Run Code Online (Sandbox Code Playgroud)

这种转换例如foo.bar.coffeefoo.bar.js.

我喜欢什么:

  • 有用
  • 它不依赖于像 indexOf()
  • 它感觉功能;)

我不喜欢的:

  • 它并不像我希望的那么短
  • 它可能会让一些读者感到困惑

我怎么能写一个更简单/更简单的版本?

更新:下面的答案很棒!简而言之:

  • 看起来我上面的原始方法并不差,虽然它没有涵盖一些极端情况,但如果你需要覆盖那些可以修复更长的表达
  • 另一种略短的方法使用正则表达式,根据你的正则表达式背景,它可以或多或少地具有可读性
  • 原始方法的语法略短(未涵盖的角点案例)如下:

    fileName.split('.').init :+ "js" mkString "."

scala

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

服务器端XForms表单验证并集成到ASP.NET中

我最近一直在研究为ASP.NET Web应用程序创建基于Web的表单的方法,这些表单可以在运行时进行编辑和管理.例如,管理员可能希望添加新的验证规则或新的字段集.

圣杯将提供一种指定表格以及(可能非常复杂的)任意验证规则以及为每个字段分配数据源的方法.然后,该规范将用于更新Web应用程序中的已部署表单,然后该表单将验证客户端和服务器端的提交.

我的调查让我看到了Xforms和许多支持它的技术.一个解决方案似乎是IBM Lotus Forms,但这需要在基础架构方面进行非常大的投资,这使得它变得不可行,尽管表单设计器可能作为创建表单的独立工具很有用.我还打印了浏览器插件,因为表单必须是公开可见的并且符合跨浏览器标准.

我注意到有许多javascript库在给定Xforms模式的情况下提供客户端实现.这些将提供部分解决方案,但仍然需要服务器端验证.

另一种选择似乎涉及使用服务器端解决方案,例如Java应用程序Orbeon.Orbeon提供了一个用于指定表单的工具(虽然没有Lotus Forms Designer那么丰富),但最有趣的一点是,它可以将XForms模式转换为完成验证的XHTML表单.如果可以与现有的ASP.NET应用程序集成,那么它是用Java编写的并不是一个大问题.

所以我的问题是之前是否有人这样做过.这听起来像是一个应该解决的问题,但本质上非常复杂.似乎可以使用现成的工具来设计表单并将其导出为Xforms模式和xhtml表单,并且似乎可以采用xforms模式和表单并使用客户端库发布它.似乎很难提供一种方法来验证服务器端的表单提交并将该过程与.NET很好地集成(虽然看起来.NET社区不涉及XForms;如果我错了请纠正我在这个数量上).

如果产品提供的东西很简单,就像可以根据模式验证提交的Web服务,我会非常高兴.也许Orbeon做到了这一点,但如果知情人士在我进一步研究之前能指出正确的方向,我将不胜感激.

非常感谢.

asp.net validation xforms orbeon

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

是否可以在JUnit环境中使用ScalaTest BDD语法?

我想描述BDD风格的测试,例如使用FlatSpec,但保留JUnit作为测试运行器.

ScalaTest快速入门似乎没有显示任何此示例:

http://www.scalatest.org/getting_started_with_junit_4

我首先尝试天真地在@Test方法中编写测试,但这不起作用,断言从未测试过:

@Test def foobarBDDStyle {
    "The first name control" must "be valid" in {
        assert(isValid("name·1"))
    }
    // etc.
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?如果定期测试可以混合并与BDD式测试相匹配,那就更好了.

scala scalatest

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