Regex 仅当某个字符出现在特定数量的字符之后时,才删除该字符后面的所有内容的正则表达式

Regex 仅当某个字符出现在特定数量的字符之后时,才删除该字符后面的所有内容的正则表达式,regex,string,character,Regex,String,Character,我在找一个简单的正则表达式 例1: n = 5 Input: abcde@varun@gmail.com Output: abcde@varun 例2: n = 5 Input: abcd@varun@gmail.com Output: abcd@varun@gmail.com 这意味着,如果n=5且符号@未出现在第5个索引上或之前,则假定字符串从索引1开始,然后删除所有内容,包括第二次出现@后的@符号 如果不满足上述规则,则保留字符串的原样 谢谢你,瓦伦 ^(?!(?:@|.@|

我在找一个简单的正则表达式

例1:

n = 5

Input: abcde@varun@gmail.com

Output: abcde@varun
例2:

n = 5

Input: abcd@varun@gmail.com

Output: abcd@varun@gmail.com 
这意味着,如果n=5且符号@未出现在第5个索引上或之前,则假定字符串从索引1开始,然后删除所有内容,包括第二次出现@后的@符号

如果不满足上述规则,则保留字符串的原样

谢谢你,瓦伦

^(?!(?:@|.@|.{2}@|.{3}@|.{4}@))(.*?@.*?)@.*$
试试这个。换成1美元。见演示

试试这个。换成1美元。见演示

试试这个。换成1美元。见演示

试试这个。换成1美元。见演示


您可以使用此正则表达式捕获希望保留在第一组中的零件:

(^[^@]{5,}@[^@]*)@
表达式匹配至少有两个@符号的字符串,第一个@不出现在最初的五个字符内

这将捕获abcde@varun,但不是abcd@varun,因为@出现在最初的五个字符内


将5替换为n以根据需要更改前缀的长度。

您可以使用此正则表达式捕获要保留在第一组中的部分:

(^[^@]{5,}@[^@]*)@
表达式匹配至少有两个@符号的字符串,第一个@不出现在最初的五个字符内

这将捕获abcde@varun,但不是abcd@varun,因为@出现在最初的五个字符内


将5替换为n以根据需要更改前缀的长度。

您可以使用此正则表达式捕获要保留在第一组中的部分:

(^[^@]{5,}@[^@]*)@
表达式匹配至少有两个@符号的字符串,第一个@不出现在最初的五个字符内

这将捕获abcde@varun,但不是abcd@varun,因为@出现在最初的五个字符内


将5替换为n以根据需要更改前缀的长度。

您可以使用此正则表达式捕获要保留在第一组中的部分:

(^[^@]{5,}@[^@]*)@
表达式匹配至少有两个@符号的字符串,第一个@不出现在最初的五个字符内

这将捕获abcde@varun,但不是abcd@varun,因为@出现在最初的五个字符内


将5替换为n以根据需要更改前缀的长度。

是否尝试解决此问题?同时在@上指定您的语言/工具拆分,如果第一个元素长度超过4,只需将前两个元素连接起来,否则什么也不做。您尝试过解决它吗?同时在@上指定您的语言/工具拆分,如果第一个元素长度超过4,只需将前两个元素连接起来,否则什么也不做。您尝试过解决它吗?同时在@上指定您的语言/工具拆分,如果第一个元素长度超过4,只需将前两个元素连接起来,否则什么也不做。您尝试过解决它吗?还要在@上指定语言/工具拆分,如果第一个元素长度超过4,只需将前两个元素连接起来,否则什么也不做。