gpt4 book ai didi

ruby - Nokogiri模式限制

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:16 26 4
gpt4 key购买 nike

这应该有效吗?

当我使用

 <xs:pattern value="(!red|green|blue)"/>

一切都很好,但是使用:

<xs:pattern value="(?!red|green|blue)"/>

(注意添加的“?”)

编辑:在另一个 SO 问题中发现这个,它也不起作用:

^((?!red|green|blue)|((red|green|blue).+)).*$

两种原因:

/home/asdf/.rvm/gems/ruby-1.9.3-p125@tretti_order/gems/nokogiri-1.5.2/lib/nokogiri/xml/schema.rb:37:in `from_document': Element '{http://www.w3.org/2001/XMLSchema}pattern': The value '(?!red|green|blue' of the facet 'pattern' is not a valid regular expression. (Nokogiri::XML::SyntaxError)
from /home/asdf/.rvm/gems/ruby-1.9.3-p125@tretti_order/gems/nokogiri-1.5.2/lib/nokogiri/xml/schema.rb:37:in `new'
from /home/asdf/.rvm/gems/ruby-1.9.3-p125@tretti_order/gems/nokogiri-1.5.2/lib/nokogiri/xml/schema.rb:8:in `Schema'
from xml_validate.rb:12:in `<main>'

上下文:

    <xs:simpleType name="attributeIdType">
<xs:annotation>
<xs:appinfo>Attribute Id Type.</xs:appinfo>
<xs:documentation source="http://www.web3d.org/x3d/specifications/ISO-IEC-19775-1.2-X3D-AbstractSpecification/Part01/fieldsDef.html#SFDouble"/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="(?!red|green|blue)"/>
</xs:restriction>
</xs:simpleType>

最佳答案

(?!foo) 中的内容称为 "zero-width negative lookahead assertion" ;它说“确保,站在这个地方并向前看,你不能匹配这个模式。”

根据 this page XML Schema 的pattern 不支持任何类型的环视(正面或负面,向前或向后)。

但是,既然你说,“目的是确保如果字符串以 ABC_PRODUCT_ 开头,它只以特定字符串结尾。”你不会需要环顾四周。你可以简单地这样做:

pattern="(foo|bar_(jim|jam)"

这将匹配“foo”、“bar_jim”和“bar_jam”,但不匹配“bar_zzz”。

关于ruby - Nokogiri模式限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com