问题标签 [alternation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 如何使用交替和替换来执行 Perl 正则表达式
我希望将“eAlpha eBeta eGamma”转换为“fAlpha fBeta fGamma”。当然,这只是更复杂替换的简化示例。
这是我的 perl 程序:
输出是
Perl 正则表达式似乎记得 $1 但不记得 $2。有没有办法使用正则表达式替换、全局替换和捕获 $1、$2 等变量?
- 替代品永远不会超过 3 个,所以我可以分三步完成,但不希望这样做。
任何帮助,将不胜感激。
regex - 使 sed 正则表达式交替遵循从左到右的优先级?
我正在尝试使用正则表达式从 格式化一些二进制文件xxd -b
,但为了简单地演示这一点,我将向您展示我期望发生的事情:
要删除的正则表达式:/1x|1.*/
文本:1x21y3333333313333
->2
如果所有出现的1x
都被删除,那么从第一个 1 开始出现的所有内容都应该被删除。发生了什么应该立即显而易见,但如果不是,请使用 this。关键是如果1x
匹配,则应该中止模式的其余部分。
这是echo "AA" | xxd -b
(的绑定转储AA\n
)的输出:
我的目标是 1. 删除每个字节的第一个 0(ascii = 7 位)和 2. 删除字符串的其余部分,以便只保留实际的二进制文件。所以我把它输入sed 's/ 0//g'
:
添加第二步,sed -E 's/ 0| .*//g'
:
显然,我希望得到:
我尝试过但没有完成工作的事情:
xxd
可以-g0
合并列,但它保留每个字节中的第一个零(每个字符占用一个字节,而不是 7 位)-r
与此同时,我将使用 perl,但这种行为让我感到困惑,也许这里有一个原因(教训)?
regex - 关于交替的 (a|b)* 示例,我很困惑,为什么结果集中有 ab、ba?
交替是关于联合,那么如果我们有 R={"a"} , S={"b"} ,那么 R|S 将是 {"a", "b"}。
为什么 ab, ba 包含在 (a|b)* 中?
我不明白为什么
我认为结果集应该是
(a|b)* = {Ɛ,"a", "b", "aa","bb", "aaa", "bbb", ...}
regex - <|> 在这个解析器中的顺序真的很重要吗?
星期一早上的 Haskell 帖子Parsing Part 2: Applicative Parsing说这个关于交替的regex-applicative
:
请注意,顺序很重要!如果我们把整数解析器放在第一位,我们就有麻烦了!如果遇到小数,整数解析器会贪婪地成功解析小数点之前的所有内容。我们将丢失小数点后的所有信息,或者更糟糕的是,解析失败。
从他们的 Git 存储库中引用这个函数:
但是,我无法弄清楚为什么会这样。当我更改decimalParser <|> integerParser
为 时integerParser <|> decimalParser
,它似乎仍然总是解析正确的东西(特别是,我这样做并运行stack test
时,他们的测试仍然通过)。小数解析器必须有小数点,而整数解析器不能有小数点,所以它会在那里停止解析,导致小数点导致下一段解析失败,将我们回溯到小数解析器。似乎唯一不会发生这种情况的情况是,如果整个解析器的下一部分在此之后可以接受小数点(使其成为模棱两可的语法),但您仍然不会“丢失所有信息之后小数点,或更糟糕的是,解析失败”。我的推理是否正确并且那篇文章中有一个错误,或者是否有一个案例我没有看到他们的结果之一可能发生在哪里?
r - 如何交替使用向量列表(正则表达式)
是否可以将字符串向量解析为正则表达式中的替换元素?例如:
因此,如果我将“Animals”解析为正则表达式,它将导致:
它基本上应该像or1()
从rebus
包中一样工作。
python - Python 打印交替
我需要用 Python 打印一个简单的棋盘,它必须有 8 行和 8 列。
这是我到目前为止所拥有的:
它打印如下内容:
但我想要这样的东西:
python - 我如何用一个正在克隆的盒子做一个正确的列表?
我不明白如何制作 1 个被克隆多次的盒子,其中每个第二个块都有不同的颜色。我想制作一个主框并对其进行整形,然后制作一个循环,在其中我多次克隆它,但我无法制作循环将它始终克隆到另一个克隆旁边。另外,当涉及到颜色时,我定义了一个列表,它给了我一个错误,因为这个变量没有被使用,我想使用它,所以每隔一个块就用另一种颜色。
如果有人知道这将是惊人的,这似乎给我带来了很多麻烦。
regex - 正则表达式中的转义括号与交替
我正在尝试编写一个 Reg 表达式来匹配单词列表中的任何单词,但在使用带括号的单词时遇到问题。
这是我到目前为止的 reg 表达式:
带有括号的单词(例如 Civil Services)会匹配,但不会匹配带有括号的单词(例如 Engineering Works (EW))。
我尝试过使用 \ 进行单转义和双转义 (\),但是在测试带有括号的单词时,这两个选项似乎都没有返回匹配项。
我怎样才能匹配带括号的单词?
regex - 正则表达式匹配包含两个字符串之一的路径
正则表达式匹配第三段中的两个字符串之一,即伪代码:
示例匹配
示例不匹配
我试过这个,但无济于事: