正则表达式匹配以字符串开头的单词

时间:2017-10-11 17:20:22

标签: java regex

如何生成正则表达式以仅匹配以big

开头的一个单词

我试图用开始和结束字符串形成一个正则表达式。将字符串作为big开始,将结束字符串作为\s空格。

考虑这一行You are my big-big-big friend and also a brother

当我使用以下正则表达式时,它会将结果显示为big-big-bigfriendandalsoabrother

(.big.*\s)

但我期待结果为big-big-big。这个词可以在行的开头或结尾处。我想生成一个正则表达式,以匹配以big

开头的完整单词

帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式

(?!\s)big\S*

它完全符合您的要求。

说明:

(?!\s)

它背后可能有也可能没有空格,但它不应被视为捕获的一部分(负向前瞻)

big

会找到 big 这个词

\S*

会发现任何字符一个空格,0次或更多次

所以:

(?!\s)big\S*

找到 big 这个词,然后是任何不是空格的内容,直到它碰到空白。它可能会或可能不会有空白。

答案 1 :(得分:2)

可以使用以下正则表达式:

import React from 'react';
import ReactMarkdown from 'react-markdown';

export default class HomePage extends React.Component {  
  constructor(props) {
    super(props);

    this.state = {
      artical: ''
    };
  }

  componentDidMount() {
    var s = this;
    var props = s.props;

    axios.get(`/api/wiki/${props.match.params.artical}`, {
      timeout: 20000,
    })
    .then(res => {
      var ping = res.data;
      s.setState({
        artical: ping.artical
      });
    });
  }

  render() {
    var s = this;
    return (
        <div>
        <ReactMarkdown source={s.state.artical}/>
      </div>
    )
  }
}

详细说明:

  • (?<!\S)big\S* - 一个负面的后视图,确保在当前位置的左侧立即开始字符串或空格
  • (?<!\S) - 文字子字符串
  • big - 除了空白字符之外的任何0个或多个字符