regex 我想建立一个正则表达式来匹配一个特定的字符串

lp0sw83n  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(117)

我有一根绳子

"CC/N/NAME ‡C/CITY NAME ‡A/ADDRESS"

我想匹配完全相同的字符串。如果符号出现在任何有效字符之间,即CC/N/NAME ‡C/CITY‡ NAME ‡A/ADDRESS",则整个字符串不应匹配。如果字符串有CC/\[NACZP\]/,那么它应该匹配。
我试过这个正则表达式:
但如果它没有‡\[NACZP\]/有效字符,它也匹配‡ symbol

^(CC\\/[NACZP]\\/[^‡]*)|(.*)(?<=‡[NACZP]\\/)([^‡]*)|^CC\\/[¤ ]$

我试过这个

^(CC\/[NACZP]\/[^‡]*)|(.*)(?<=‡[NACZP]\/)([^‡]*)|^CC\/[¤ ]$

我希望它只匹配一个有效的字符串,它的字符串是CC/[NACZP]/,如果在字符串中间有‡,那么它应该有[NACZP]/。即‡N/NAME

w80xi6nr

w80xi6nr1#

您可以使用以下模式。
我不相信这里有必要到处看看,只是重复的小组。
我不确定我是否完全符合你的规格。
它看起来只是分隔的、顺序的大写字母,只有当它们是单数 NACZP 字母时,才可以在前面加上双箭头字符

^CC(?:/(?:‡[NACZP]|[A-Z]+)(?: ‡[NACZP]| [A-Z]+)*)*/?$

这将与以下内容匹配。

CC
CC/
CC/N
CC/N/NAME
CC/N/NAME ‡C
CC/N/NAME ‡C/CITY NAME ‡A
CC/N/NAME ‡C/CITY NAME ‡A/ADDRESS

不是这些,

CC/ /
CC/ABC /
CC/ 123
CC/‡B
CC/‡A ‡B
CC/‡ABC
CC/CITY‡ NAME
CC/N/NAME ‡C/CITY‡ NAME ‡A/ADDRESS

作为说明,您提到以下内容。

  • "...另外,如果字符串有CC/[NACZP]/,那么它应该匹配。..."*

我相信这是一个错字,关于\[\]
因为,您没有在您的模式中检查这些。

\\/[NACZP]\\/

相关问题