正则表达式在匹配其他条件时查找不包含 space 的字符串
Regex to find a string that does not contain a space while matching other conditions
我有一堆可能包含特定模式的字符串。具体有以下3.
以 (-
开头,后跟 10 位数字,然后是 )
。
例如:
(-1234567890)
以(
开始,以)
结束,可以包含1个或多个字符,但没有个空格。
例如:
(ABC) or (AF33) or (2345)
以(
开头,以)
结尾,可能包含1个或多个字符,包括个空格。
例如:
(Some string)
我使用的字符串可能包含零个或多个上述模式。我的要求是匹配 ONLY 给定字符串中的第二个,我希望能够在 C# 中使用 Regex
class。
例如,假设以下是我拥有的五个不同的字符串。
This is some random text.
This is some (ABC) random (-1234567890) text.
This is some (XY12) random (-1234567890) text.
This is some (Contains space) random (-1234567890) text.
This is some () random text.
我的 Regex
应该匹配 上面列表中的第 2 和第 3 个字符串。
到目前为止,我已经按照正则表达式编写了此代码,其中不包括字符串 1 和 5。
.*\((?!\-).+\).*
这匹配上面的第 2、3、AND 第 4 个字符串。现在我不确定如何才能排除第 4 个,第 4 个在括号内包含空格。我知道 \S
检测空格,但我如何告诉它检测不包含空格的字符串,仅在第一个 (
之后不包含 -
的括号内?
编辑 1:
我的字符串中永远不会有嵌套括号。
编辑 2:
这是 Regex Tester.
.*\(\w+\).*
如果您使用上面的正则表达式,则第二个和第三个字符串仅匹配
.* 所有字符
( pharantesis
\w+所有单词字符(至少一个)
) 幻化
.* 所有字符
\(([^- ]+[^ ]*)\)
应该可以
解释:
[^- ]+
将首先匹配一个既不是 -
也不是 </code> 的字符,这将确保它至少包含一个字符 </p>
<p>那么<code>[^ ]*
会匹配0个或更多none个白色space个字符
这适用于任何字符集
我有一堆可能包含特定模式的字符串。具体有以下3.
以
(-
开头,后跟 10 位数字,然后是)
。例如:
(-1234567890)
以
(
开始,以)
结束,可以包含1个或多个字符,但没有个空格。例如:
(ABC) or (AF33) or (2345)
以
(
开头,以)
结尾,可能包含1个或多个字符,包括个空格。例如:
(Some string)
我使用的字符串可能包含零个或多个上述模式。我的要求是匹配 ONLY 给定字符串中的第二个,我希望能够在 C# 中使用 Regex
class。
例如,假设以下是我拥有的五个不同的字符串。
This is some random text.
This is some (ABC) random (-1234567890) text.
This is some (XY12) random (-1234567890) text.
This is some (Contains space) random (-1234567890) text.
This is some () random text.
我的 Regex
应该匹配 上面列表中的第 2 和第 3 个字符串。
到目前为止,我已经按照正则表达式编写了此代码,其中不包括字符串 1 和 5。
.*\((?!\-).+\).*
这匹配上面的第 2、3、AND 第 4 个字符串。现在我不确定如何才能排除第 4 个,第 4 个在括号内包含空格。我知道 \S
检测空格,但我如何告诉它检测不包含空格的字符串,仅在第一个 (
之后不包含 -
的括号内?
编辑 1:
我的字符串中永远不会有嵌套括号。
编辑 2:
这是 Regex Tester.
.*\(\w+\).*
如果您使用上面的正则表达式,则第二个和第三个字符串仅匹配
.* 所有字符
( pharantesis
\w+所有单词字符(至少一个)
) 幻化
.* 所有字符
\(([^- ]+[^ ]*)\)
应该可以
解释:
[^- ]+
将首先匹配一个既不是 -
也不是 </code> 的字符,这将确保它至少包含一个字符 </p>
<p>那么<code>[^ ]*
会匹配0个或更多none个白色space个字符
这适用于任何字符集