ChatGPT解决这个技术问题 Extra ChatGPT

什么正则表达式将匹配除逗号','或分号';'之外的每个字符?

是否可以定义一个正则表达式来匹配除某个定义的字符或字符集之外的每个字符?

基本上,我想用逗号 (,) 或分号 (;) 分割字符串。因此,我正在考虑使用正则表达式来匹配所有内容,直到遇到逗号或分号。


m
mmx
[^,;]+         

您尚未指定您正在使用的正则表达式实现。它们中的大多数都有一个 Split 方法,该方法采用分隔符并由它们分割。您可能希望将其与“普通”(不带 ^)字符类一起使用:

[,;]+

而且问题没有指定是否允许相邻的分隔符,所以尾随的“+”有点可疑。
仅对分号出错-未终止的正则表达式遇到文件结尾
我有一个类似的要求,我想在最后避免分号和逗号我尝试了很多但下面没有成功是我正在使用的正则表达式 const regexDomain = /^(?:[A-Za-z0-9](?: [A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]{ 0,61}[A-Za-z0-9]/g;好吧,它可以验证我是否使用 , 和 ;介于两者之间,但最终未能 vliadate。
T
Thom Smith

使用字符类。以插入符号开头的字符类将匹配该类中没有的任何内容。

[^,;]

关于negated character classes的更多信息
我有一个类似的要求,我想在最后避免分号和逗号我尝试了很多但下面没有成功是我正在使用的正则表达式 const regexDomain = /^(?:[A-Za-z0-9](?: [A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]{ 0,61}[A-Za-z0-9]/g;好吧,它可以验证我是否使用 , 和 ;介于两者之间,但最终未能 vliadate。
B
BigRon

使用 negative character class

[^,;]+

N
NawaMan

用这个:

([^,;]*[,;])*

这需要逗号或分号作为字段分隔符,而不是作为字段分隔符。差异在“行”(或其他扫描的记录结构)的末尾很重要;通常,您不想在最后一个字段之后坚持使用逗号或分号。如果您的正则表达式引擎足够强大,您可以使用“(?:([^,;]*)(?:[^,;]|$))”(带有非捕获括号的 PCRE)。在字段或记录结束后使用逗号或分号的替代方案可以使事情更好地工作。还要考虑是否允许空字段。
最后,您必须担心捕获实际返回的内容 - 您是否真的希望包含分隔符,如果一行中有 10 个字段,捕获表示法返回的字段有多少。
你说的都是对的,但我没有在我的回答中协调这些事情的原因是我不知道提问者问的是什么语言/RegEx 库。他可能正在使用“GREP”。无论如何,我很感激你添加这些评论来为他解决问题。 :D

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅