XML 正则表达式不允许&符号

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

我们有以下正则表达式

(^\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.) /? +
c# regex xsd
1个回答
0
投票

这个正则表达式怎么样

在自由间距模式下(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\/\-?:()\.,'+ ]+(?<!\/| )$
© www.soinside.com 2019 - 2024. All rights reserved.