【发布时间】:2017-12-18 10:02:51
【问题描述】:
我有一个非常复杂的正则表达式,我终于设法在 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*$)
附上文字:(TITLE: "asdasd")
但是当我将文本发送到我的 C# 后端并使用相同的正则表达式时,它会失败。 有什么地方我可以找出它失败的原因吗?我尝试了一些不同的在线工具,但没有一个能解释为什么它不起作用。
我只需要在这里指出正确的方向,因为我是使用正则表达式的新手。谢谢!
【问题讨论】:
-
如果您向我们展示您拥有的字符串,我们可能会帮助您简化表达方式。
-
字符串是什么意思?您需要比提供的正则表达式和测试字符串更多的字符串吗?
-
"the same regex" 你确定它是 same 正则表达式吗 - 例如,在转换到/从来自 JS 的 C# - 或许可以准确地发布您在 JS 和 C# 中的使用方式。
-
是的,我很确定。我实际上将正则表达式存储在我的后端,并在我的 js 中调用一个方法从后端获取它们。 js部分也可以按我的意愿工作,我想当我创建正则表达式字符串并在我的c#代码的同一类中测试它时不需要转义字符串?
-
我已经在这两个中尝试过:js:regex101.com 和.net:regexstorm.net/tester,我得到了相同的结果。该测试在 regex101 中运行,而不是在 regexstorm 中运行 :(
标签: javascript c# regex