- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个文件。一个是结构化问题,另一个是答案键。
SourceQuiz.txt 示例:
1)This is the first question.
a) option 1
b) option 2
c) option 3
d) option 4
2)This is the second question
a) option 1
b) option 2
c) option 3
d) option 4
3)This is the third question.
a) option 1
b) option 2
c) option 3
d) option 4
4)This is the fourth question.
a) option 1
b) option 2
c) option 3
d) option 4
etc etc
AnswerKey.txt 示例:
a
b
d
d
我需要 FinalQuiz.txt 文件采用以下格式:
https://docs.moodle.org/311/en/Aiken_format
What is the correct answer to this question?
A. Is it this one?
B. Maybe this answer?
C. Possibly this one?
D. Must be this one!
ANSWER: D
事实上,源问题有 ) 而不是 。是无关紧要的。 Moodle 很好地解释了它们。
ANSWER: x
的新行其中 x 是与 AnswerKey.txt 中的问题对应的行中的值 Get-Content $SourceQuiz.txt | Foreach {$_.TrimEnd()}
我知道我可以:
Get-Content C:\Users\Administrator\Desktop\123.txt | ForEach-Object {
if ($_) {
$_.Substring(0, 1).ToUpper() + $_.Substring(1)
} else {
$_
}
} > output.txt
我知道我可以使用
if ($_.StarsWIth("D")
在 foreach 循环中查找以 D 开头的行。
ANSWER: A
,问题 2 是
ANSWER: B
,问题 3 是
ANSWER: D
,问题 4 是
ANSWER D
。
1)This is the first question.
a) option 1
b) option 2
c) option 3
d) option 4
2)This is the second question
a) option 1
b) option 2
c) option 3
d) option 4
3)This is the third question.
a) option 1
b) option 2
c) option 3
d) option 4
4)This is the fourth question.
a) option 1
b) option 2
c) option 3
d) option 4
我得到的结果:
This is the first question.
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: D
This is the second question
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: C
This is the third question.
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: A
This is the fourth question.
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: B
结果需要:
1)This is the first question.
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: D
2)This is the second question
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: C
3)This is the third question.
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: A
4)This is the fourth question.
a) option 1
b) option 2
c) option 3
d) option 4
ANSWER: B
数字不见了。这些是进口商寻找的指标来定义一个问题的结束和下一个问题的开始。
最佳答案
这是我能想到的最好的方法,可能还有更好的方法。
mklement0 和 this awesome answer 的 Prop 我在那里了解了基于脚本块的替换 :)
注意:这段代码都假设数据看起来与您在问题中显示的完全一样。
# In your case, this would be:
# $sourceQuiz = Get-Content path\to\SourceQuiz.txt
$sourceQuiz = @'
1)This is the first question.
a) option 1
b) option 2
c) option 3
d) option 4
2)This is the second question
a) option 1
b) option 2
c) option 3
d) option 4
3)This is the third question.
a) option 1
b) option 2
c) option 3
d) option 4
4)This is the fourth question.
a) option 1
b) option 2
c) option 3
d) option 4
'@ -split '\r?\n'
# And this would be:
# $answers = Get-Content path\to\answers.txt
$answers = @'
a
b
d
d
'@ -split '\r?\n'
$answerIndex = 0
$loopIndex = 1
$txtInfo = (Get-Culture).TextInfo
$sourceQuiz -split '^\d+\)' -ne '' | ForEach-Object {
[regex]::Replace($_, '\s+(\w+)\)\s+', {
param($s)
$txtInfo.ToTitleCase($s.Groups[1].Value) + '. '
})
if($loopIndex % 5 -eq 0)
{
'ANSWER: {0}' -f $txtInfo.ToTitleCase($answers[$answerIndex])
''
$answerIndex++
}
$loopIndex++
}
以上结果为:
This is the first question.
A. option 1
B. option 2
C. option 3
D. option 4
ANSWER: A
This is the second question
A. option 1
B. option 2
C. option 3
D. option 4
ANSWER: B
This is the third question.
A. option 1
B. option 2
C. option 3
D. option 4
ANSWER: D
This is the fourth question.
A. option 1
B. option 2
C. option 3
D. option 4
ANSWER: D
-Raw
的用法在 Get-Content
.
# In your case, this would be:
# $sourceQuiz = Get-Content path\to\SourceQuiz.txt -Raw # => -Raw is important here
$sourceQuiz = @'
1)This is the first question.
a) option 1
b) option 2
c) option 3
d) option 4
2)This is the second question
a) option 1
b) option 2
c) option 3
d) option 4
e) option 5
f) option 6
3)This is the third question.
a) option 1
b) option 2
'@
# And this would be:
# $answers = Get-Content path\to\answers.txt # => Here don't use -Raw
$answers = @'
a
b
d
'@ -split '\r?\n'
$answerIndex = 0
$txtInfo = (Get-Culture).TextInfo
$sourceQuiz -split '\d+\)' -ne '' | ForEach-Object {
$lines = $_ -split '\r?\n' -ne ''
for($i=0;$i -lt $lines.Count;$i++)
{
switch($i)
{
{$i -eq 0}
{
$lines[$i]
break
}
{$i -gt 0}
{
[regex]::Replace($lines[$i],'\s+(\w+)\)\s+',{
param($s)
$txtInfo.ToTitleCase($s.Groups[1].Value)+'. '
})
}
{$i -eq $lines.Count-1}
{
'ANSWER: {0}' -f $txtInfo.ToTitleCase($answers[$answerIndex])
''
}
}
}
$answerIndex++
}
现在看起来像这样:
This is the first question.
A. option 1
B. option 2
C. option 3
D. option 4
ANSWER: A
This is the second question
A. option 1
B. option 2
C. option 3
D. option 4
E. option 5
F. option 6
ANSWER: B
This is the third question.
A. option 1
B. option 2
ANSWER: D
-Raw
需要第二个代码片段吗? -Raw
, 内容为单个
multiline string
而不是字符串数组
string[]
.
multiline string
是必须的? string
并在有_任意数量的数字后跟
)
的地方进行拆分(即
1)
、
123)
、
9999)
等)将每个问题及其相应的选项分开。
carriage returns
中再次拆分每个块。或
new lines
在这里我们可以假设
position 0
数组永远是一个问题:
{$i -eq 0}
{
$lines[$i]
break
}
职位
greater than 0
数组的将是选项,这里是我们
trim
前导空格并替换后跟
)
的字符后跟
.
的相同字符(即:
a)
代表
A.
)。
{$i -gt 0}
{
[regex]::Replace($lines[$i],'\s+(\w+)\)\s+',{
param($s)
$txtInfo.ToTitleCase($s.Groups[1].Value)+'. '
})
}
最后,确定何时到达可用选项的末尾并知道何时插入
ANSWER:
,因为我使用的是
for
循环并使用
$i
变量为
index
, 在循环的每次迭代中
switch
正在询问是否
$i
等于
$lines.Count - 1
(如果
$i
已到达数组的末尾或数组的最后一个元素)。
{$i -eq $lines.Count-1}
{
'ANSWER: {0}' -f $txtInfo.ToTitleCase($answers[$answerIndex])
''
}
关于powershell - 修剪前导空格,然后将每行的第一个字母大写,如果行以特定字符串开头,则从另一个文件添加新行 + 字符串 + $var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68705999/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!