- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试用我构建的列表的内容替换文件中的一些占位符文本。我逐步浏览列表,边走边数,然后根据计数进行搜索。计数是一个整数,它是我在每个循环中使用的搜索词的一部分。
我这辈子都搞不清楚到底发生了什么。我已经打印了我能想到的所有内容,看起来搜索词匹配。我尝试了多种替换方法,但一直坚持使用简单的替换示例来展示。
文件中的示例文本,已加载到变量“filedata”中:
<core:para>ANSWER_1</core:para><core:para>2. Bilateral investment treaties</core:para><core:para>ANSWER_2</core:para><core:para>3. Domestic arbitration law</core:para><p>ANSWER_3</p><core:para>4. Domestic arbitration and UNCITRAL</core:para><core:para>ANSWER_4</core:para><core:para>5. Mandatory provisions</core:para><core:para>ANSWER_5</core:para><core:para>6. Substantive law</core:para><core:para>ANSWER_6</core:para><core:para>7. Arbitral institutions</core:para><core:para>ANSWER_7</core:para><core:para>8. Arbitrability</core:para><core:para>ANSWER_8</core:para><core:para>9. Requirements</core:para><core:para>ANSWER_9</core:para><core:para>10. Enforceability</core:para><core:para>ANSWER_10</core:para>
代码:
x = 1
answerlist = ['Oranges', 'Apples', 'Mangos', 'Cherries']
for a in answerlist:
searchterm = '<core:para>ANSWER_' + str(x) +'</core:para>'
newdata = filedata.replace(searchterm, a)
x=x+1
出于示例的目的,我对上面的 answerlist 变量进行了硬编码,但这是在更大的循环中动态创建的。
预期的结果是:
<core:para>Oranges</core:para><core:para>2. Bilateral investment treaties</core:para><core:para>Apples</core:para>
等等
实际结果是:
<core:para>ANSWER_1</core:para><core:para>2. Bilateral investment treaties</core:para><core:para>ANSWER_2</core:para>
我已经测试了 x 两侧的模式并且工作正常,所以问题似乎是 x,不知何故没有转换成我认为是的字符串。
知道问题出在哪里吗?
最佳答案
我将猜测您在这里要做什么。我从上面获取了您的示例文本,并将其分配给下面代码中的字符串 txt
。我可以使用 re.split
连同 groupings (括号中的内容)以获取创建列表所需的数字。然后我可以遍历列表中的所有其他元素,提取我感兴趣的整数并将列表中的该值重新分配给我的替代项。在这种情况下,我只是根据大写字母进行替换,但您可以在此处放置您想要的任何列表
txt="""<core:para>ANSWER_4</core:para><core:para>5. Mandatory provisions</core:para><core:para>ANSWER_5</core:para><core:para>6. Substantive law</core:para><core:para>ANSWER_6</core:para><core:para>7. Arbitral institutions</core:para><core:para>ANSWER_7</core:para><core:para>8. Arbitrability</core:para><core:para>ANSWER_8</core:para><core:para>9. Requirements</core:para><core:para>ANSWER_9</core:para><core:para>10. Enforceability</core:para><core:para>ANSWER_10</core:para><core:para>11. Third parties - bound by arbitration agreement</core:para><core:para>ANSWER_11</core:para><core:para>12. Third parties - participation</core:para><core:para>ANSWER_12</core:para><core:para>13. Groups of companies</core:para><core:para>ANSWER_13</core:para><core:para>14. Multiparty arbitration agreements</core:para><core:para>ANSWER_14</core:para><core:para>15. Eligibility of arbitrators</core:para><core:para>ANSWER_15</core:para><core:para>16. Background of arbitrators</core:para><core:para>ANSWER_16</core:para>"""
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
pieces = re.split(r'<core:para>ANSWER_([0-9]+)</core:para>', txt)
for i in range(1, len(pieces), 2):
idx = int(pieces[i])
pieces[i] = f'A CAPITAL LETTER: {alphabet[idx]}'
print(''.join(pieces))
这将打印出:
大写字母:E5。强制性条款大写字母:F6。实体法大写字母:G7。仲裁机构大写字母:H8。可仲裁性大写字母:I9。要求大写字母:J10。可执行性大写字母:K11。第三方 - 受仲裁协议(protocol)约束大写字母:L12。第三方 - 参与大写字母:M13。公司集团大写字母:N14。多方仲裁协议(protocol)大写字母:O15。仲裁员的资格大写字母:P16。仲裁员背景大写字母:Q
关于python - 如何替换为整数变量作为搜索模式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56064228/
我想对一个字符串执行搜索和替换,比如 password。 正如您从问题中了解到的那样,替换后的字符串应变为 sdvvzrug。 但不幸的是,下面的代码输出bbbbcaab: $search = ran
我正在使用 futurize --stage2它应用了许多源代码转换以使代码 python2 和 python3 兼容。其中一个修复是所有分区 a/b 都替换为 old_div(a/b),我想避免这种
我正在使用 RStudio,但我在控制台上的输出被截断了。我找不到如何停止截断(我尝试搜索 ?options 以及在谷歌上搜索的时间比我想承认的要长)。 编辑:我向大家道歉!我最初的长名称为“This
我有一个 fragment 堆栈,我在其中使用替换和相加。添加或替换我的 fragment 的代码(在我的 Activity 中)如下 private fun addFragment(fragment
我在一个数组中插入了一些字符串,但在我这样做之前,我想按照主题所说的去做。只用 %20 替换空格,我这样做: Name.push(linkText.replace(" ", "%20")); 但是我如
我正在尝试编译和测试我在网上看到的代码 Expanding an IP add 。但是,当我尝试编译它时,我收到有关 StringBuilder 替换方法的错误。它说: IPadd.java:52:
我正在尝试使用 dplyr 的最新功能重写我的部分代码,方法是将 data.frame() 替换为 data_frame() 和 cbind() 与 bind_cols(): library(rgeo
我最近偶然发现了 replace()和 "[ x.tst s.tst s.tst [,1] [,2] [,3] [1,] 0 0 0
我一直想知道,如何在给定的参数内进行替换。 如果你有这样的一行: 123,Hello,World,(I am, here), unknown 你想更换 World与 Foobar那么这是一个简单的任务
如何转义字符串中的双引号?例如, input: "Nobody" output: \"Nobody\" 我尝试过这样的操作,但不起作用: String name = "Nobody"; name.r
我正在做类似的事情: SQL sql sQl SqL var ps = document.getElementsByTagName('p'); for(var i = 0; i 但它不会替换文本。
我正在尝试用 \" 替换所有 " 并用 JSON 解析字符串,但浏览器抛出错误 SyntaxError: JSON Parse error: Unrecognized token '\'. 下面是代码
大家好,在这里挣扎...... 是否可以将第一个正斜杠之间的任何内容替换为“”,但保留其余部分? 例如var 将是 string "/anything-here-this-needs-to-be-re
在下面的代码中,JavaScript 替换函数中的 alert(a) 将提醒匹配的字符串,在本例中,将是 {name} 和 {place}。 这按照文档 javascript docs 的描述工作,即
+-----------------------------+ | tables | +-------------------
我正在尝试用\"替换包含 "的字符串,下面是我尝试过的程序 String s="\"/test /string\""; s = s.replaceAll("\"", "\\\"");
var text = "a's ..a's ...\"... "; text = convert(text); function convert( text ) { var n = text
我正在尝试使用 JavaScript 中的替换函数,但有一个问题。 strNewDdlVolCannRegion = strNewDdlVolCannRegion.replace(/_existing
好吧,首先我对我的上一篇文章感到非常抱歉,但我真的需要帮助,我会把我真正想要的东西放在一个更清晰的代码中。我不擅长 javascript,所以希望你能帮助我。
我正在写一张纸条,遇到了障碍。可能有更有效的方法来执行此操作,但我对 Python 还很陌生。我正在尝试创建用户生成的 IP 地址列表。我正在使用 print 来查看生成的值是否正确。当我运行此代码时
我是一名优秀的程序员,十分优秀!