【问题标题】:Regex for multiple different words, between white spaces空格之间的多个不同单词的正则表达式
【发布时间】:2016-08-25 10:02:58
【问题描述】:

我对正则表达式完全陌生。 我只是想知道这是否可能。(如果解释令人困惑或太复杂,我很抱歉) 比如说,我只想找到并替换这个特定的粗体标题:

“正如第一章所讨论的,财务报表的用户可以归类为资源提供者。(空间)(空间)用户和决策(空间)(空间)就是一个例子。 (空格)(空格)财务分析的性质和目的(空格)(空格)我们已经确定,财务分析涉及以相对术语表示财务报表中报告的数字。”

到这里:

“正如第一章所讨论的,财务报表的使用者可以归类为资源提供者。
(新行)用户和决策制定(标签空间) 一个例子。
(新行)财务分析的性质和目的(选项卡空间) 我们已经确定,财务分析涉及以相对术语表示财务报表中报告的数字。 "

由于我目前对正则表达式的了解有限,我尝试将其分解为 2 个部分:


1.找到“。(空间)(空间)自然”:
[(.)]\s\s[(A-Z)]\w+
到\n$&


2.找到“分析(空间)(空间)我们”:
[(a-z)]\w+\s\s[(A-Z)]
到??

所以,我的问题是是否可以只定义 1 个正则表达式
(space)(space)用户和决策(space)(space)
(space)(space)财务分析的性质和目的(space)(space) 我们

并将其替换为上面的示例?

谢谢!

PS。这种奇怪的编辑背后的原因是将其作为 txt 上传到 anki 抽认卡软件而无需进一步编辑。
如果我要从厚厚的教科书中编辑整个文本(每章 x20 左右的章节 x5 教科书等等可以包含 1000 多个编辑),我目前的方法可能会非常费力。
fyi,在 anki 和其他几个抽认卡软件中,tab 是前面/问题和后面/答案之间的字段分隔符。
双空格[ ][ ]用于在使用查找和替换时将特定标题与单空格分隔;这是我自己预先设置好的。
新行 (\n) 用于添加新的单独的抽认卡。
Anki(和其他几个闪存卡软件)支持 html,所以我通常通过使用 notepad++ 和正则表达式从 pdf 复制文本来添加多张卡片,查找并替换句子的多个标题或第一个单词以适应 anki 的问题/前面部分抽认卡,其余的成为答案部分;然后将其导入anki。 如果可以将所有查找部分自动化,我可以节省大量时间!

【问题讨论】:

  • 您使用什么语言或工具?我认为您的正确答案将取决于此。
  • 类似这样的东西:[ ]{2} ? regex101.com/r/nR0xC8/1如果我理解你的问题,两个连续的空格应该换一个换行符。
  • 感谢您的快速回复。仍在尝试使用 regexr、notepad++、vim(我不知道如何使用它)、jsfiddle,但我对任何其他编辑器都持开放态度。
  • 我觉得你需要this
  • @Jan 已尝试将所有内容简化为您之前提出的那种解决方案,但速度还不够快。

标签: javascript html css regex anki


【解决方案1】:

在谷歌搜索和修补一段时间后,我想我终于找到了答案! :D
[ ]{2,}([A-Z])[\w ]{1,}[ ]{2,}
替换为
\n$&\t\t

http://regexr.com/3db4o

灵感来自:
Regex for multiple words split by spaces
Python regex: Including whitespace inside character range
http://www.rexegg.com/regex-quickstart.html 和@Jan 的回答

【讨论】:

    【解决方案2】:

    我看到您正在尝试匹配以大写字母开头的单词组合,单词之间有一个空格,并用两个空格块括起来。

    这是一个满足这些条件的正则表达式:

    /[^\S\r\n]{2,}[A-Z]\w*(?:[^\S\r\n]\w+)*[^\S\r\n]{2,}/g
    

    查看regex demo(替换为\n$&\t\t

    请注意,[\w ]{1,} 将匹配单词字符或空格 1 次以上,并且可以在单词之间允许超过 1 个空格。但是,如果您需要匹配一行中的 last 2-space 块,这可能会很好。请注意,您需要在上述模式中的第二个 [^\S\r\n] 之后添加一个 +

    【讨论】:

      猜你喜欢
      • 2021-01-06
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      相关资源
      最近更新 更多