在下面的示例中,使用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) 假设我从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[]只是因为它是一个合理大小的可变长度记录数据库.我的真正问题与字典查找无关,而与某种织机模式有关.
有没有办法在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)
这个片段打印出来:
你好
世界
这
是
我想要做的是将这些单词打印成对:
你好世界
世界,这
本是
就是例子
我怎样才能做到这一点?
我发现在执行类型模式匹配时读取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) 考虑以下破坏的功能:
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列表中的模式匹配,我有点困惑.
例如.
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的输出.
目前我正在努力在java中转换具有等效字符的HTML代码.我需要将以下代码转换为字符.
è - è
® - ®
& - &
ñ - ñ
& - &
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) 除了:
case class A
Run Code Online (Sandbox Code Playgroud)
...... 非常有用的案例?
为什么我们需要使用case的match?岂不:
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)
...?
我name在contacts表格中的列中有几个与此类似的值:
test 3100509 DEMO NPS
我想只返回每个值的数字部分name.
我试过这个:
select substring(name FROM '^[0-9]+|.*') from contacts
但那不行.
有关如何从返回值中删除所有非数字字符的想法?
给出以下代码:
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) pattern-matching ×10
scala ×5
java ×2
regex ×2
case-class ×1
crossword ×1
extractor ×1
javascript ×1
jquery ×1
list ×1
matcher ×1
postgresql ×1
sql ×1
syntax ×1
types ×1