返回破折号后跟单个字符

时间:2021-06-28 02:34:28

标签: regex grep

这按预期工作:

([^\u0000-\u007F])+-हा([^\u0000-\u007F])+

返回:

ब-हाणपूर
ब-हाणी
बनियन-हाफ

但我正在寻找 1 个字符后跟破折号。预期输出为:

ब-हाणपूर
ब-हाणी

我试图用这样的字符数替换 + 符号...

([^\u0000-\u007F]){1}-हा([^\u0000-\u007F])+

但它返回了相同的 3 个结果。我如何返回前 2 个?

2 个答案:

答案 0 :(得分:1)

你需要锚点:

^([^\u0000-\u007F])-हा([^\u0000-\u007F])+$

Demo


你问“如果我需要在破折号左边有 5 个字符怎么办?'

书写的正则表达式部分 [^\u0000-\u007F] 与符合该标准的单个字符匹配。如果您想要多于或少于一个,请使用 regex quantifier 来描述您想要的数量。

在这种情况下,如果您想要 5 个,您可以使用:

^([^\u0000-\u007F]{5})-हा([^\u0000-\u007F])+$

答案 1 :(得分:1)

大概是这样的:

^([^\u0000-\u007F]){1}-हा([^\u0000-\u007F])+

^([^\u0000-\u007F]{1})-हा([^\u0000-\u007F]+)

(\b[^\u0000-\u007F]{1})-हा([^\u0000-\u007F]+)

correlating

相关问题