标签: pattern-matching

使用正则表达式(regex)替换jQuery/JavaScript中的选定文本

在下面的示例中,使用jQuery选择文本.我们如何通过摆脱其他数据来隔离货币?

这种使用JavaScript的尝试replace不起作用:

var symbol = $("div.price > h5 > div.num").text().replace(/[\d.]*/, "");
Run Code Online (Sandbox Code Playgroud)

这是HTML的示例; jQuery选择器正在工作:

<div class="price">
  <h5 class="biguns">
    <div class="num">
      €12.28
    </div>
    Lowest Price Per Night
  </h5>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript regex jquery pattern-matching

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

Mathematica中使用模式匹配的填字游戏

假设我从Mathematica字典中选择所有3个字符:

all3 = Characters /@ Select[DictionaryLookup[], StringLength[#] == 3 &];  
Run Code Online (Sandbox Code Playgroud)

我想形成完整的拼字游戏集,例如:

A B E
R A Y
E R E  
Run Code Online (Sandbox Code Playgroud)

可以水平和垂直读取单词.

显然,可以通过递归和回溯找到集合.但:

1)有没有办法用模式解决它?
2)哪些尺寸有有效的解决方案?

编辑

我写这个问题DictionaryLookup[]只是因为它是一个合理大小的可变长度记录数据库.我的真正问题与字典查找无关,而与某种织机模式有关.

wolfram-mathematica pattern-matching crossword

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

带有lookahead的Java正则表达式

有没有办法在java中打印出正则表达式的前瞻部分?

    String test = "hello world this is example";
    Pattern p = Pattern.compile("\\w+\\s(?=\\w+)");
    Matcher m = p.matcher(test);
    while(m.find())
        System.out.println(m.group());
Run Code Online (Sandbox Code Playgroud)

这个片段打印出来:

你好
世界


我想要做的是将这些单词打印成对:

你好世界
世界,这
本是
就是例子

我怎样才能做到这一点?

java regex pattern-matching regex-lookarounds

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

用于类型变量的类型模式的用例和示例

我发现在执行类型模式匹配时读取scala支持绑定类型变量的规范:

Map(1 -> "one", 2 -> "two") match {
  case l: Map[k, v] =>
    // binds k to Int and v to String
    // k and v are types as shown here:
    val i: Iterator[Tuple2[k, v]] = l.iterator
    println(i.mkString(", "))
}
Run Code Online (Sandbox Code Playgroud)

我能做些什么花哨的东西或实用的东西吗?或绑定类型变量仅用于类型文档目的?

我想到Scala有时需要类型注释,比如定义函数,所以我试过:

def prepender(obj: Any) = obj match {
  case xs: List[a] => (x: a) => x :: xs
  case opt: Some[a] => (x: a) => x :: Nil
}
Run Code Online (Sandbox Code Playgroud)

但是返回函数的类型很奇怪:

prepender: (obj: Any)a with a => List[Any] forSome …
Run Code Online (Sandbox Code Playgroud)

types scala pattern-matching

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

如何系统地避免Scala中的不安全模式匹配?

考虑以下破坏的功能:

def sum (list : Seq[Int]) : Int = list match {
  case Nil => 0
  case head :: tail => head + sum(tail)
}
Run Code Online (Sandbox Code Playgroud)

在这里,该函数应该与a一起使用List[Int],但是被重构为接受Seq[Int],因此在没有编译器注意的情况下被破坏.

Scala不完整模式匹配检测中的这个空洞使得它几乎无用.

我想有办法系统地发现这些问题.具体来说,我希望编译器在每个instanceof引导模式匹配时发出错误/警告,即我只想在密封层次结构和自定义匹配器上允许模式匹配.

是否存在用于对模式匹配安全性进行保守(而不是任意)检查的现有编译器选项/插件?

scala pattern-matching non-exhaustive-patterns

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

Scala中列表上的模式匹配

关于Scala列表中的模式匹配,我有点困惑.

例如.

    val simplelist: List[Char] = List('a', 'b', 'c', 'd')

    //> simplelist  : List[Char] = List(a, b, c, d)

    def simple_fun(list: List[Char]) = list match {
           case (x:Char) :: (y:List[Char]) => println(x)
           case _ => Nil
     }                                                 
   //> simple_fun: (list: List[Char])Any

   simple_fun(simplelist)                            

   //> a
   //| res0: Any = ()
Run Code Online (Sandbox Code Playgroud)

目前只打印一行输出.它是否应该在列表的每个元素上运行/模式匹配?

编辑:我修复了编译错误并复制了REPL的输出.

scala list pattern-matching

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

用Java中的等效字符替换HTML代码

目前我正在努力在java中转换具有等效字符的HTML代码.我需要将以下代码转换为字符.

&#x00E8; - è
&#xAE;   - ®
&#x0026; - &
&#x00F1; - ñ
&#x26;   - &
Run Code Online (Sandbox Code Playgroud)

我尝试使用正则表达式模式

(&#x)([\\d|\\w]*)([\\d|\\w]*)([\\d|\\w]*)([\\d|\\w]*)(;)
Run Code Online (Sandbox Code Playgroud)

当我调试时,matcher.find()给我true但控件跳过我编写转换代码的循环.不知道那里发生了什么.

另外,有没有办法优化这个正则表达式?

任何帮助表示赞赏.

例外

java.lang.NumberFormatException: For input string: "x26"
      at java.lang.NumberFormatException.forInputString(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at java.lang.Integer.parseInt(Unknown Source)
      at org.apache.commons.lang.Entities.unescape(Entities.java:683)
      at org.apache.commons.lang.StringEscapeUtils.unescapeHtml(StringEscapeUtils.java:483)
Run Code Online (Sandbox Code Playgroud)

java matcher pattern-matching

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

向Scala添加"case"关键字背后的原因是什么?

除了:

case class A
Run Code Online (Sandbox Code Playgroud)

...... 非常有用的案例

为什么我们需要使用casematch?岂不:

x match {
  y if y > 0 => y * 2
  _ => -1
}
Run Code Online (Sandbox Code Playgroud)

... 漂亮和简洁?

或者为什么我们需要case在函数取元组时使用?说,我们有:

val z = List((1, -1), (2, -2), (3, -3)).zipWithIndex
Run Code Online (Sandbox Code Playgroud)

现在,不是:

z map { case ((a, b), i) => a + b + i }
Run Code Online (Sandbox Code Playgroud)

...... 方式不仅仅是:

z map (((a, b), i) => a + b + i)
Run Code Online (Sandbox Code Playgroud)

...?

syntax scala pattern-matching

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

仅返回列中的数值 - Postgresql

namecontacts表格中的列中有几个与此类似的值:

test 3100509 DEMO NPS

我想只返回每个值的数字部分name.

我试过这个:

select substring(name FROM '^[0-9]+|.*') from contacts

但那不行.

有关如何从返回值中删除所有非数字字符的想法?

sql postgresql pattern-matching

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

Scala提取器 - 跳过未使用的参数

给出以下代码:

abstract class MyTuple

... 

case class MySeptet(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int) extends MyTuple

case class MyOctet(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int, h: Int) extends MyTuple

...
Run Code Online (Sandbox Code Playgroud)

使用生成的提取器时,是否可以跳过剩余的参数,假设它们未被使用?

例如,我不想在下面的代码片段中写下大量的下划线:

case MyOctet(a, b, _, _, _, _, _, _) => ... // uses only a and b
Run Code Online (Sandbox Code Playgroud)

scala pattern-matching case-class extractor

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