gpt4 book ai didi

c# - 匹配不以空格开头或结尾的字符串的正则表达式

转载 作者:行者123 更新时间:2023-11-30 22:15:49 29 4
gpt4 key购买 nike

我需要一个正则表达式来确保字符串不以空格开头或结尾。我不在乎它的“中间”是否有空格,只是不在开头或结尾。

我有一个几乎有效的正则表达式:

^\S.*\S$

以下是一些示例结果:

"HELLO" (Match)
"HEL LO" (Match)
" HELLO" (No Match)
"HELLO " (No Match)
"H" (No Match)

如您所见,我遇到的问题是,当字符串只有 1 个字符长时(上面示例中的“H”),它不会返回匹配项。

如何修改我的正则表达式来处理字符串长度为 1 的情况?

谢谢

注意 - 我将此数据保存到一个 Xml 文件中,因此我需要一个模式来匹配 Xml 模式中的相同内容。我不确定它是否与 C# 中使用的任何正则表达式相同。

如果有人能为我提供在我的模式中使用的模式,将不胜感激!

最佳答案

你可以这样做:

^\S(.*\S)?$

它将匹配单个非空格字符,后跟可选的零个或多个字符,后跟单个非空格字符。


更新

鉴于您说这是用于 XML 架构验证,我使用此架构对其进行了测试:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="xml">
<xs:complexType>
<xs:sequence>
<xs:element name="test" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="value">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\S(.*\S)?"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

针对此示例文档

<xml>
<test value="HELLO"/> <!-- MATCH -->
<test value="HEL LO"/> <!-- MATCH -->
<test value="HELLO "/> <!-- ERROR -->
<test value=" HELLO"/> <!-- ERROR -->
<test value="H"/> <!-- MATCH -->
</xml>

所以看起来,如果您只是删除开始/结束括号。它有效。

关于c# - 匹配不以空格开头或结尾的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768298/

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