如何为此字符串构建正则表达式

时间:2019-10-28 13:56:00

标签: javascript regex

这是我的字符串

  

你好,我的朋友,我想向大家问好

我正在使用以下正则表达式将 hello匹配到所有人,但是由于某种原因,它匹配了整个字符串。

  

你好(。*?)你

我认为是因为我正在使用通配符匹配。我希望开始是你好,结束是,并且要在这两者之间得到任何东西,而不是整个字符串。

我的正则表达式完全忽略了你好内在的单词,并给了我广泛的匹配。我希望它狭窄。

3 个答案:

答案 0 :(得分:1)

您的正则表达式工作正常。您的字符串以hello开头,以you结尾。防止这种情况的一种方法是限制要匹配的字符,例如逗号。这样,它将仅匹配字符串的最后一部分。

(hello(\w| )+you)

这里我只匹配单词,所以逗号不计算在内。

您可以尝试更多案例here

答案 1 :(得分:0)

您在这里:.*(hello.+you).*(js格式,不区分大小写:var regex=/.*(hello.+you).*/i

详细信息在这里:Regex101

在链接中,我使用g + m标志,因此它可以匹配更多的内容,如果不希望与多行匹配,请使用var regex=/.*(hello.+you).*/igm,但它应该只与出现该行的第一行匹配,但是idk会发生什么组数据选择器,不是专家,而是通过谷歌搜索和试错修改正则表达式为您找到答案的方法,希望对您有所帮助。
p / s:如果要允许下一个匹配,则将中间的。+替换为。*,例如:helloyou。

答案 2 :(得分:0)

如果您希望获得最后的“你好”,直到最后一个“你”,都可以使用

.*(hello.*you)

由于贪婪的.*

,您的句子将在第1组中