我有一个相当复杂的正则表达式,我终于设法在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#后端并使用相同的正则表达式时,它会失败。有什么地方可以找出故障的原因吗?我尝试过一些不同的在线工具,但它们都没有解释为什么不起作用。
我只是需要指出正确的方向,因为我是非常新的使用regex。谢谢!
发布于 2017-12-18 02:38:52
问题是您在表达式中使用的[^]
。在JS语法中,它匹配任何字符,包括换行符。在.net语法中,这不是一个有效的正则标记。
您应该能够在这两种情况下使用[\s\S]
作为替换,匹配任何字符(包括换行符)。
https://stackoverflow.com/questions/47865975
复制