提问人:Brian 提问时间:4/14/2023 最后编辑:Brian 更新时间:4/14/2023 访问量:35
需要有关 .NET 中的正则表达式的帮助
Need Assistance with a RegEx in .NET
问:
在.NET中,我正在尝试匹配这样的模式:
("any character in here as long as one or more forward slashes / is also in here//")
所以:
- 打开 Paren
- 双引号
- 任何字符,只要至少包含一个正斜杠
- 双引号
- 关闭 Paren
例子:
- 测试:“blah”→不是匹配项
- 测试:(“blah”) →不匹配
- 测试:“blah//blah too”→不是匹配项
- 测试:(blah) →不匹配
- 测试:“blah/blah too”→不是匹配
- 测试:(“blah//BLAH too”) →匹配
- 测试:(“Blah/blah too”) → MATCH
- 测试:(“//blah/blah-Another blah”) →匹配
- 测试:(“blah blah blah-anotherblah//”) →匹配
我试过这个:
public const String myRegEx = "\\(\"[^)\\n\\r\\t](.*)[\\/]+(.*)\"\\)";
Regex forwardSlashesRegEx = new Regex(myRegEx);
if(forwardSlashesRegEx.IsMatch(mystring)){
// do something ...
}
但它似乎也正在拾取字符串的其他不匹配部分。
字符串中可以有多个这些模式的实例,但我不需要匹配每个实例,我只需要查看字符串中是否至少有一个模式实例。
答:
3赞
The fourth bird
4/14/2023
#1
在 .NET 中,可以编写如下模式:
const String myRegEx = @"\(""[^/""]*/[^""]*""\)";
或者使用转义的反斜杠:
const String myRegEx = "\\(\"[^/\"]*/[^\"]*\"\\)";
该模式匹配:
\\(\"
火柴("
[^/\"]*
匹配除 或 之外的字符(如果您不想交叉匹配的换行符和制表符,也可以添加)/
"
\\n\\r\\t
/
从字面上匹配[^\"]*
匹配除"
\"\\)
火柴")
示例代码:
string mystring = "...";
const String myRegEx = "\\(\"[^/\"]*/[^\"]*\"\\)";
Regex forwardSlashesRegEx = new Regex(myRegEx);
if(forwardSlashesRegEx.IsMatch(mystring)){
// do something
}
评论
0赞
Wiktor Stribiżew
4/14/2023
您只需要在逐字字符串文字中加双引号。OP 使用常规字符串文字。
0赞
Brian
4/14/2023
我在我的原始帖子中添加了更多澄清,如果您不介意再快速浏览一下。对于您的建议,它是这样的:还是像这样:,还是完全不同的东西?myregex = "\(\"\"[^/\"\"]*/[^\"\"]*\"\"\)"
myregex = @"\(\"\"[^/\"\"]*/[^\"\"]*\"\"\)"
0赞
The fourth bird
4/14/2023
@Brian 我添加了带有代码的正则表达式作为示例。
评论
("/")