mar*_*cog 25
[并且]是正则表达式中的特殊字符,因此您需要转义它们.这应该适合你:
\[.*?\]
Run Code Online (Sandbox Code Playgroud)
.*?对任何角色进行非贪婪的匹配.非贪婪的方面确保您将匹配[abc]而不是[abc]def].如果要匹配整个字符串,请添加前导^和尾随$,例如,根本不匹配abc[def]ghi.
^\[.*\]$
Run Code Online (Sandbox Code Playgroud)
将匹配以开头[和结尾的字符串].在C#中:
foundMatch = Regex.IsMatch(subjectString, @"^\[.*\]$");
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找长字符串内支架分隔字符串(例如,发现[bar]内foo [bar] baz),然后使用
\[[^[\]]*\]
Run Code Online (Sandbox Code Playgroud)
在C#中:
MatchCollection allMatchResults = null;
Regex regexObj = new Regex(@"\[[^[\]]*\]");
allMatchResults = regexObj.Matches(subjectString);
Run Code Online (Sandbox Code Playgroud)
说明:
\[ # match a literal [
[^[\]]* # match zero or more characters except [ or ]
\] # match a literal ]
Run Code Online (Sandbox Code Playgroud)
这应该工作:
^\[.+\]$
Run Code Online (Sandbox Code Playgroud)
^是'字符串的开头'
\[是一个转义[,因为[是一个控制字符
.+匹配所有字符串长度> = 1(.是'任何字符',+意思是'匹配先前的模式一次或多次')
\]是一个转义]
$是'结束字符串'
如果您想匹配[],请更改+为a *('匹配零次或多次')
然后使用Regex该类匹配:
bool match = Regex.IsMatch(input, "^\[.+\]$");
Run Code Online (Sandbox Code Playgroud)
或者,如果您多次使用或循环使用,请创建一个Regex实例以获得更好的性能:
private static readonly Regex s_MyRegexPatternThingy = new Regex("^\[.+\]$");
bool match = s_MyRegexPatternThingy.IsMatch(input);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56146 次 |
| 最近记录: |