【问题标题】:Extract all single characters from sentence in one match在一次匹配中从句子中提取所有单个字符
【发布时间】:2019-07-20 18:57:24
【问题描述】:

我需要使用正则表达式从整个句子中提取所有单个字母,并且结果必须只在一个组中,不能是单独的组。 例如:

这是一个我有两个字母的例句:

a and b

得分:

匹配:ab

下面是我的正则表达式,也是最重要的一件事,因为我不能使用正则表达式:"(?<!"

\b[A-Za-z]\b

到目前为止,我有:

Match1: a
Match2: b

【问题讨论】:

  • 有非语言特定的正则表达式问题似乎没问题,尽管标记味道并没有什么坏处(不管是什么,不支持负面的后视)。更大的问题是不清楚这里要问什么。 OP可以澄清一下吗?
  • 为了得到想要的结果,何不直接加入所有的比赛呢?
  • 我想在 IBM Watson Assistant 中使用这个reges。该服务使用基本的正则表达式。当我使用例如这个:` (?
  • 如何通过正则表达式加入所有匹配项?
  • 你不能。但是,如果可以使用正则表达式执行搜索和替换,那就有办法了。

标签: regex watson-assistant


【解决方案1】:

我推荐两种方法。

  1. 在全局匹配中仅匹配独立的单词字符。 这将使他们进入一个列表。

(?<!\w)\w(?!\w)

https://regex101.com/r/uKNMg1/1

  1. 将此正则表达式与上述正则表达式相反。
    这将删除所有多个单词字符并将字母放入列表中。

(?s)(?:(?!(?<!\w)\w(?!\w)).)+

https://regex101.com/r/pJtRdp/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多