我遇到Regex
的问题,这里似乎从未有人问过。
我必须将字符a
替换为whitespace
(或不跟随),但必须替换为number
(不得替换数字)。
我有这个正则表达式:
[aA]\s.(?<=\d)*
结果就是这样:
我使用(?<=\d)*
尝试匹配但不从空格后跟(或不跟)字符后立即捕获数字,但是显然它不起作用,也是因为“ \ d”不包括标识符。
标识符可以是一系列数字或字母数字字符,没有定义的长度,也可以是字母排序(如果是字母数字)。
它们可以是A54N3
,Z4G78
或8454
或4AZ7
或7
或A1
,1A
。组合总是在变化。
我只想在数字a
(或任何其他数字,或类似8
的标识符)前匹配N574A
,并用art
替换该字符,但保留数字/ identifier的原样,因此结果应为:agricoltura n 6 sensi dell'art8
或agricoltura n 6 sensi dell'artN574A
,并且如果目标字符串是agricoltura n 6 sensi dell'a8
或agricoltura n 6 sensi dell'aN574A
,(因此不带空格) )的结果应为:agricoltura n 6 sensi dell'art8
或agricoltura n 6 sensi dell'artN574A
因此通用规则应为:
Match [aA] followed by an optional space then must be followed by a number or an identifier that must not be captured
有可能这样做吗?有什么解决方案? 非常感谢!
更新
使用\\b([aA])\\s*([A-Za-z]*\\d[\\dA-Za-z]*)\\b
模式似乎可以替换正确的值,here是演示