与 Excel VBA 中 Unicode 字符的正则表达式不匹配



如何使用正则表达式来不匹配Excel VBA中unicode字符的场景。

要求

xxx業務データxxx         - Match (if contains 業務データ character)
xxx定義。業務データxxx - Not match (if contains 定義。eventhough 業務データ character exists)

我尝试使用以下正则表达式,但没有得到正确的结果。请引导我或纠正我错的地方。

- Regex pattern: ^(?!定義。)業務データ
- 定義。業務データxxx    - Not match (As expected)
- 業務データxxx          - Match (As expected)
- xxx業務データxxx       - Not match (Failed)
- xxx定義。業務データxxx - Not match (As expected)
- Regex pattern: (?!定義。)業務データ
- 定義。業務データxxx    - Match (Failed)
- 業務データxxx         - Match (As expected)
- xxx業務データxxx      - Match (As expected)
- xxx定義。業務データxxx - Match (Failed)

在这里尝试 http://regexr.com/3gd4g

您可以使用以下正则表达式:

^(?!.*定義。).*業務データ.*$

查看正则表达式演示

该模式的工作方式如下:

  • ^- 字符串的开头
  • (?!.*定義。)- 一个负面的预视,尝试尽可能多地匹配除换行符 (.*( 以外的任何 0+ 字符,然后定義。字符序列,如果找到,则整个字符串失败
  • .*- 除换行符字符 (.*( 以外的任何 0+ 字符 尽可能多
  • 業務データ- 文本子字符串
  • .*- 除换行符字符 (.*( 以外的任何 0+ 字符 尽可能多
  • $- 字符串结尾

尝试以下正则表达式

^((?!.*定義。.*))(.*業務データ.*)*$

结果

- Regex pattern: ^((?!.*定義。.*))(.*業務データ.*)*$
- 定義。業務データxxx     - Not match (As expected)
- 業務データxxx          - Match (As expected)
- xxx業務データxxx       - Match (As expected)
- xxx定義。業務データxxx -  Not match (As expected)
- xxx定義業務データxxx   -  Match (As expected)

这是链接 : http://regexr.com/3gd4s

最新更新