- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个匹配多项式因子的正则表达式。它必须是真或假。它要么匹配,要么不匹配。例如:
(x-5)(x+2)(x-1)
当然这三个因素的顺序可以任意,但不能重复。我可以重复,但大多数时候我不能。所以我认为,如果我能在没有重复的情况下弄清楚,那么稍微调整一下以允许重复应该很容易。
这是我尝试过的:
^\(x-5\)|\(x\+2\)|\(x-1\)$
但这不允许任何顺序。我还需要它来处理更多因素。我需要按任意顺序排列任意数量的因素。有时
我应该提到我无法运行代码。我正在使用一个名为 Canvas 的在线程序。我只有一根线可以使用。它是一个自动分级机。所以我正在检查学生是否输入了正确的答案。
有什么想法吗?
最佳答案
更新
根据 OP 的评论,他们无法运行代码并且必须检查重复项,此正则表达式最多适用于 3 个因素:
^(\(x[+-]\d+\))((?!\1)(\(x[+-]\d+\))((?!(\1|\3))(\(x[+-]\d+\)))?)?$
正则表达式查找因子 \(x[+-]\d+\)
。然后它使用否定的先行 (?!\1)
和另一个因素检查这是否没有跟随相同的因素。然后它再次使用否定前瞻检查这是否没有跟在之前使用过的因素 (?!(\1|\3)
和最后的第三个因素。第二个和第三个因素是可选以允许匹配最多 3 个因素的模式。通过重复嵌套否定前瞻和因素的模式,可以将正则表达式扩展到 4 个或更多因素,并根据需要进行多次。对于 4 个因素,否定前瞻将是 (?!(\1|\3|\6))
。
原始答案
此正则表达式将处理任意数量的因素,但我认为您将不得不处理应用程序中的重复项。但是我不确定是否应该允许重复,因为(例如)(x-1)(x-1)
是 x^2- 的一组有效因子2x+1
.
^(\(x[+-]\d+\))+$
正则表达式查找任意数量的 (
后跟 x
、+
或 -
, 一些数字 (\d+
) 后跟结束符 )
。通过将正则表达式包含在 ^
和 $
中,我们确保它必须匹配整个字符串。
如果您确实想检查重复项,这就是您可以在 PHP 中完成的方法。它使用 preg_split
在因子之间的点上拆分字符串(对 使用正向后视)
和对 (
) 使用正向前视,然后比较具有数组中唯一值计数的数组,以确定是否存在重复项:
$factors = '(x-5)(x+2)(x-1)(x+2)';
$factors = preg_split('/(?<=\))(?=\()/', $factors);
print_r($factors);
if (count($factors) != count(array_unique($factors))) {
echo "duplicate factors found!";
};
输出:
Array (
[0] => (x-5)
[1] => (x+2)
[2] => (x-1)
[3] => (x+2)
)
duplicate factors found!
关于regex - 任意顺序的代数因子 RegExr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53642820/
下面是我的代码。 var input = "this is @renish profile"; var matches = input.replace(/(@\w*)/g,'$1'); 输出为: th
我正在尝试编写一个匹配多项式因子的正则表达式。它必须是真或假。它要么匹配,要么不匹配。例如: (x-5)(x+2)(x-1) 当然这三个因素的顺序可以任意,但不能重复。我可以重复,但大多数时候我不能。
我需要为下面的字符串模式生成一个正则表达式。 A:B:C:D A 应该只包含字符串,B 可以包含字符串和数字,C 应该是字符串,D 应该只是数字。 我自己创建了 RegExr 及其工作原理。 [a-z
我的字符串中列出了年份 $s = "Acquired by the University in 1988"; 实际上,它可以在这个单行字符串中的任何位置。如何使用正则表达式提取它?我尝试了\d 但这没
我因使用\(bakcslash) 进行 regExr 匹配而出现超出范围错误.. ..请解决......!! if ($('.channelquickvalidte').val().match("^
这个问题在这里已经有了答案: ReactJS convert HTML string to JSX (12 个答案) How to render HTML string as real HTML?
我有这个(简化的)正则表达式: ((\s(python|java)\s)?((\S+\s+and\s))?(\S+\s+(love|hate))) 我在regexr中创建了这个环境并在这句话上进行了测
我正在使用这个工具 http://regexr.com/3fvg9我想在 regexxr 工具中标记这个(weat)her。 (weath)er is good. // i want
我需要使用正则表达式来解决两个问题来定位文件路径。 1) 主要问题:我收到一条我不明白的错误消息。2)在我更改一些小内容之前,脚本会运行,但正则表达式搜索没有返回任何内容。 在 regexr.com
我想要一个文本的正则表达式,如果里面至少有 1 个单词和 2 个字母,并且至少有 25 个字母或数字,并且还允许 (0-9äöü,.' -),如果那里有其他字母或数字,应该报错。 例子: 正确: 李四
我有这个正则表达式,我用它来将一个字符串拆分成我可以稍后处理的标记。我使用 RegExr(在线工具)制作它并且在那里工作正常,但我无法让它在 python 中工作。我现在正在使用它来打印火柴。 sun
我想知道是否有一个 Xpath 相当于 http://gskinner.com/RegExr/用于正则表达式? 通过这种方式,您只需键入一个 xpath 查询,它就会显示您选择了哪些元素。 我还没有找
我有一个正则表达式,用于从 CocoaPods 定义中提取 git URL。 输入文字如下: pod 'Alamofire', :git => 'https://github.com/Alamofir
我是一名优秀的程序员,十分优秀!