2

我需要一些关于 C# 中正则表达式的建议。我要匹配的是 2 个字符(方括号)之间的所有内容,但只有当某些字符 (,;) 不在方括号之间时,我才想排除这些字符。

换句话说,我需要在一个正则表达式中组合 2 个表达式。我有这个:[(.*?)] 还有这个:[^,;]

这两个表达式在隔离时效果很好,但是我需要将两者结合起来,我还没有将它们组合成一个表达式,如果我能做这样的事情会很好 [(.*?)] & [^, ;] 但它不起作用。

这里有一些关于我需要什么的现实例子:

  • ...[text1] ...:匹配:[text1]

  • ...[文本 text2] ...:匹配:[文本 text2]

  • ...[text,text2]...:不匹配!

  • ...[text;text2]...:不匹配!

请,您可以提供的任何建议都将非常有用。

非常感谢

4

3 回答 3

1

你试过了@"\[([^,;]+?)\]"吗?

regexpal.com上查看

于 2013-09-20T21:37:00.627 回答
0

试试@"\[[^,;]*\]"

另外,试试http://regexpal.com/ 。

于 2013-09-20T21:37:43.400 回答
0

使用替代:这是一个例子

    $test = preg_replace('/\[.*?\]|[\[\]=]/', '', $test);

排序在这里很重要,因此首先匹配的括号及其内容被删除。只要没有嵌套括号,这应该可以正常工作。

于 2013-09-20T21:51:30.960 回答