【问题标题】:Regular expression to select only the words surrounded by whitespaces正则表达式仅选择被空格包围的单词
【发布时间】:2015-10-30 15:36:49
【问题描述】:

我正在寻找一个允许我选择被空格包围的单词的正则表达式。明显的模式/\s(\w*)\s/g 不起作用,因为行尾被视为空白。

我需要这样的东西:

不匹配匹配不匹配

不匹配匹配不匹配

【问题讨论】:

  • 行尾空格。
  • 那么,试试/(?![\n\r])\s/g
  • 你可以使用/ (\w+) /
  • 你能提供你使用这个正则表达式的语言吗?有时这可以更清楚地说明允许使用哪种语法。
  • 如果是PHP,使用/\h(\w+)\h/。如果是 .NET,请使用 \p{Zs}(\w+)\p{Zs}。对于 JS,我猜 anubhava 的建议是最好的,除非你真的需要使用\s:/(?![\r\n])\s(\w+)(?![\r\n])\s/g

标签: regex


【解决方案1】:

\s 也将匹配非打印空白“空格”字符\n\r,是的。如果您只想匹配实际留下“空格”的字符,则必须指定它们。另外,使用零宽度的lookahead 和lookbehind 以免“消耗”相邻单词匹配的空间:

/(?<=[ \t])(\w+)(?=[ \t])/g

【讨论】:

  • 正确,但不需要抓字; 整个匹配是单词
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 2011-04-02
相关资源
最近更新 更多