【问题标题】:find word that each character separated by space查找每个字符由空格分隔的单词
【发布时间】:2018-11-19 07:19:49
【问题描述】:

我需要一个正则表达式来选择一个单词,该单词每个字符由空格分隔。看下面的字符串

Mengkapan,Sungai Apit,S I A K,Riau,

我想选择S I A K。我被卡住了,我试图使用以下正则表达式

\s+\w{1}\s+

但它不起作用。

【问题讨论】:

  • \b[A-Za-z](?:\s+[A-Za-z])+\b
  • 太棒了..谢谢@DmitryBychenko

标签: regex sublimetext3


【解决方案1】:

我建议

\b[A-Za-z](?:\s+[A-Za-z])+\b

模式,在哪里

\b           - word boundary
[A-Za-z]     - letter (exactly one)
(?:          - one or more groups of  
   \s+       - white space (at least one)
   [A-Za-z]  - letter (exactly one)
)+
\b           - word boundary

【讨论】:

  • 所有来自 SO 上的人的回答都运行良好,但 Dmitry 的回答理应被接受,因为他是第一个发表评论的人。非常感谢。
【解决方案2】:

对于您给定的信息,您可以使用

(?:[A-Za-z] ){2,}[A-Za-z]

a demo on regex101.com

【讨论】:

  • 反例? "As I Say" 将返回匹配 "s I S"
【解决方案3】:

你可以匹配一个单词边界\b,一个单词字符\w,并重复至少2次空格和一个单词字符,然后是单词边界:

\b\w(?: \w){2,}\b

Regex demo

【讨论】:

  • 反例? "As I Say" 将返回匹配 "s I S"
  • @DmitryBychenko 夏普!你是对的,我添加了单词边界。
猜你喜欢
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2021-07-23
  • 2019-06-19
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
相关资源
最近更新 更多