0

我在文本上使用了一种书签。这些书签的结构是这样的:(# + field + #)

“字段”必须仅包含字母字符(AZ 和 az,而不是数字或其他字符)。

我需要匹配不满足此规则的单词。

因此,请考虑以下示例:

  1. (#公司名#)
  2. (#公司名#)
  3. (#Company5Name#)

只有第一个是正确的,但我必须匹配其他 2 个案例。匹配第一个的模式是:

(\(\#)[A-Za-z]+(\#\))

为了匹配错误的情况,我需要这样的东西:

(\(\#)[^A-Za-z]+(\#\))

但这不能正常工作。

谁能建议我如何让它工作?

提前感谢,对不起我的英语......

4

2 回答 2

1

这应该有效:

\(#.*?[^A-Za-z].*?#\)

\(- 转义(
#- 散列
.*?- 零个或多个通配符(非贪婪)
[^A-Za-z]- 单个无效字符
.*?- 零个或多个通配符(非贪婪)
#- 散列
\)- 转义)

于 2013-03-04T14:13:13.837 回答
1

你可以试试

\(#[^#]*?[^A-Za-z#]+[^#]*?#\)
于 2013-03-04T14:13:33.870 回答