- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是 Haskell 菜鸟。我正在使用 regex-tdfa(无特殊原因)来(尝试)匹配多行代码文件 block (XAML,是的,我知道正则表达式和解析 XML 以及 the-ponies-they-come post)。
如果我在代码中使用简单的正则表达式
fileContents =~ "<UserControl.Resources>"
我的文件被点击了。是的。
如果我将正则表达式“升级”为“
问题是,我是一个菜鸟,我不知道该怎么做。我所知道的是我从 Real World Haskell 和 Learn You a Haskell 中学到的东西,而这些并没有谈论正则表达式编译选项。
所以,我可以强制结果如
fileContents =~ "<UserControl.Resources>" :: (String, String, String)
但这就是我所知道的。
如何关闭多线? (出于某种原因,我认为它已开启。)
最佳答案
regex-tdfa
编译选项的定义可以在这里找到:
https://hackage.haskell.org/package/regex-tdfa-1.2.0/docs/src/Text-Regex-TDFA-Common.html#CompOption
文档说 multiLine
默认设置为 True
。
这是一种使用自定义选项编译和执行正则表达式的方法:
{-# LANGUAGE FlexibleContexts #-}
import Text.Regex.TDFA
toRegex = makeRegexOpts defaultCompOpt{multiline=False} defaultExecOpt
test str =
if match (toRegex "<Tag>.*</Tag>") str
then putStrLn "matches"
else putStrLn "does not match"
test2 fileContents =
match (toRegex "<Tag>.*</Tag>") fileContents :: (String, String, String)
请注意,match
是多态的,就像 =~
一样。
您可以在 hledger-lib 包中找到使用自定义正则表达式选项的代码:
https://hackage.haskell.org/package/hledger-lib-0.26/docs/src/Hledger-Utils-Regex.html#Regexp
关于regex - 如何在 regex-tdfa 正则表达式中控制 CompOption "multiline"? ( haskell ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149354/
我正在用 Golang 编写一个 bash 补全程序。事实上,该程序是它自己的完成程序,因为它会查找 COMP_LINE 环境变量,如果存在,它会输出完成选项,如果不存在,则继续运行主程序。 完成后安
我正在为 zsh 编写一个自动完成脚本,我想在某些条件下启用 nospace。 bash 等效脚本如下所示 _my_completion(){ if something; then com
这里是 Haskell 菜鸟。我正在使用 regex-tdfa(无特殊原因)来(尝试)匹配多行代码文件 block (XAML,是的,我知道正则表达式和解析 XML 以及 the-ponies-the
我是一名优秀的程序员,十分优秀!