如何生成正则表达式以仅匹配以big
我试图用开始和结束字符串形成一个正则表达式。将字符串作为big
开始,将结束字符串作为\s
空格。
考虑这一行You are my big-big-big friend and also a brother
当我使用以下正则表达式时,它会将结果显示为big-big-bigfriendandalsoabrother
(.big.*\s)
但我期待结果为big-big-big
。这个词可以在行的开头或结尾处。我想生成一个正则表达式,以匹配以big
帮助将不胜感激。
答案 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个或多个字符