在.NET中,我试图匹配这样的模式:
("any character in here as long as one or more forward slashes / is also in here//")
所以:
- 打开帕伦
- 双引号
- 任何字符,只要至少包含一个正斜杠
- 双引号
- 关闭帕伦
示例:
- 测试:“blah”→不匹配
- 测试:(“blah”)→不匹配
- 测试:“blah//blah too”→不匹配
- 测试:(废话)→不匹配
- 测试:“blah/blah too”→不匹配
- TEST:(“blah//BLAH too”)→MATCH
- TEST:(“Blah/blah too”)→MATCH
- TEST:(“//blah/blah-Another blah”)→MATCH
- TEST:(“blah blah blah-anotherblah//”)→MATCH
我试过这个:
public const String myRegEx = "\\(\"[^)\\n\\r\\t](.*)[\\/]+(.*)\"\\)";
Regex forwardSlashesRegEx = new Regex(myRegEx);
if(forwardSlashesRegEx.IsMatch(mystring)){
// do something ...
}
但它似乎也在拾取字符串中不匹配的其他部分。
字符串中可以有多个这些模式的示例,但我不需要匹配每个示例,我只需要看看字符串中是否至少有一个模式的示例。
1条答案
按热度按时间des4xlb01#
在.NET中,你可以这样写模式:
参见regex demo和.NET demo。
或者使用转义反斜杠:
模式匹配:
\\(\"
匹配("
[^/\"]*
匹配/
或"
以外的字符(如果不想交叉匹配换行符和制表符,也可以添加\\n\\r\\t
)/
按字面匹配[^\"]*
匹配"
以外的字符\"\\)
匹配")
示例代码: