.net vs JS正则表达式问题

问题描述 投票:0回答:1

我有一个非常复杂的正则表达式,我终于设法在JS工作

  ^\s*((\(\s*([^]+\"|[@#a-zA-Z0-9_-åäöøæüßÅÄÖØÆÜ\-]+){1}(\s{1,}OR\s{1,}(\"[^\"]+\"|[@#a-zA-Z0-9_-åäöøæüßÅÄÖØÆÜ\-]+))*\s*\)))((\s{1,}(AND|NEAR(\/(100|[0-9][0-9]?)(?=\s))?)\s{1,})(\(\s*(\"[^\"]+\"|[@#a-zA-Z0-9_-åäöøæüßÅÄÖØÆÜ\-]+){1}(\s{1,}OR\s{1,}(\"[^\"]+\"|[@#a-zA-Z0-9_-åäöøæüßÅÄÖØÆÜ\-]+))*\s*\)))?(\s{1,}(AND\s{1,}NOT)\s{1,}(\(\s*(\"[^\"]+\"|[@#a-zA-Z0-9_-åäöøæüßÅÄÖØÆÜ\-]+){1}(\s{1,}OR\s{1,}(\"[^\"]+\"|[@#a-zA-Z0-9_-åäöøæüßÅÄÖØÆÜ\-]+))*\s*\)))?(?=(\s*\))?(\;)?\s*$)

与文字:(标题:“asdasd”)

但是当我将文本发送到我的C#后端并使用相同的正则表达式时,它就会失败。有什么地方我可以找出它为什么会失败吗?我尝试了一些不同的在线工具,但没有一个解释为什么它不起作用。

我只需要指向正确的方向,因为我正在使用正则表达式。谢谢!

javascript c# regex
1个回答
1
投票

问题是你在表达中使用的[^]。在JS语法中,它匹配任何字符,包括换行符。在.net语法中,这不是有效的正则表达式标记。

您应该能够使用[\s\S]作为替代品,匹配任何字符,包括换行符。

© www.soinside.com 2019 - 2024. All rights reserved.