我们有以下正则表达式
(^\S+([0-9a-zA-Z\-\?:\(\)\.,'\+\s].\S+)*$)
此正则表达式的 XML 模式解释不允许在文本中的任何位置使用与号 (
&
),但在 .NET 解释中是允许的。
请帮助重写它,以便它在 XML 架构验证和 .NET 验证中表现相同。
我们尝试过整合这样的东西
^[^&]*$
但没有成功。
正则表达式应该禁止使用非 a-z A-Z / - 的字符? :()。 , ‘ + 并禁用在行首和行尾使用斜杠“/”以及行内使用双斜杠“//”。文本内不应包含重复的空格以及前导或尾随空格。
以下文本在 XML 架构验证和 .NET 正则表达式验证中不应有效:
Dlhy & testovaci nazov
Dlhy&Testovaci nazov
Dlhy &Testovaci nazov
Dlhy& Testovaci nazov
Dlhy Testovaci nazov
这是有效的
Dlhy a: 'Testovaci, (nazov.) /? +
这个正则表达式怎么样
在自由间距模式下(https://regex101.com/r/30RybM/1):
(?x) # turns on free spacing mode
^ # start of line
(?!\/|\ ) # disable / and space at start of line
(?!.*\ \ |.*\/\/) # disable double space or /
[a-zA-Z\/\-?:()\.,'+ ]+ # allows specified character set
(?<!\/|\ ) # disable / and space at end of line
$ # end of line
正常模式(https://regex101.com/r/wtWy18/1):
^(?!\/| )(?!.* |.*\/\/)[a-zA-Z\/\-?:()\.,'+ ]+(?<!\/| )$